java文件流操作
java使用流读取txt文件的实验总结 -回复

java使用流读取txt文件的实验总结-回复Java使用流读取txt文件的实验总结一、介绍Java是一种面向对象的编程语言,它广泛应用于各种不同领域的软件开发。
在Java中,我们可以使用流(Stream)来读取和写入文件。
流是用于从输入源(如文件或网络)读取数据或将数据写入输出源的一种方式。
读取txt文件是Java程序开发中的基础任务之一,本实验旨在探索Java中使用流读取txt文件的方法及其应用。
二、实验目的1. 了解Java中的流概念和原理;2. 掌握Java中使用流读取txt文件的方法和技巧;3. 实践熟悉Java中流读取txt文件的常见应用场景。
三、实验过程1. 创建一个Java项目并导入所需文件。
在Eclipse等Java集成开发环境中,我们可以创建一个新的Java项目,并导入所需的类库和文件。
在本实验中,我们需要导入java.io包和所需的txt文件。
2. 创建文件输入流对象。
在Java中,我们可以使用FileInputStream类来创建一个输入流对象。
通过将txt文件的路径传递给FileInputStream的构造函数,我们可以创建一个用于读取txt文件的输入流对象。
例如,我们可以使用以下代码创建一个用于读取名为example.txt的文件的文件输入流对象:FileInputStream fis = new FileInputStream("example.txt");3. 创建缓冲区和字符输入流对象。
为了提高读取文件的效率,我们可以通过使用缓冲区来减少对磁盘的访问次数。
在Java中,我们可以使用BufferedReader类来创建一个字符输入流对象,并将其与文件输入流对象关联起来。
例如,我们可以使用以下代码创建一个字符输入流对象:InputStreamReader isr = new InputStreamReader(fis); BufferedReader br = new BufferedReader(isr);4. 读取文件内容。
字节流和字符流进行读写操作的一般步骤

字节流和字符流进行读写操作的一般步骤
字节流和字符流是 Java 中用于数据读写的两种基本流,它们有着不同的特点和应用场景。
在字节流中进行读写操作一般包括以下步骤:
1. 打开文件或输入输出流:使用相应的打开方法,如打开FileInputStream 或 FileOutputStream 对象,打开文件或输出流。
2. 读取数据:使用输入流的 read() 方法或 RandomAccessFile 类的 read() 方法读取数据,将其存储在字节数组或字符数组中。
3. 处理数据:对读取到的数据进行处理,如将其转换为字符串、打印到控制台等。
4. 关闭流:使用相应的关闭方法,如 FileInputStream.close() 或 FileOutputStream.close() 方法,关闭文件或输入输出流。
在字符流中进行读写操作一般也包括以下步骤:
1. 打开文件或输入输出流:与字节流相似,使用相应的打开方法打开文件或输入输出流。
2. 读取字符:使用输入流的 read() 方法或 RandomAccessFile 类的 read() 方法读取字符,将其存储在字符数组中。
3. 处理字符:对读取到的字符进行处理,如将其转换为字符串、打印到控制台等。
4. 关闭流:与字节流相似,使用相应的关闭方法,如FileInputStream.close() 或 FileOutputStream.close() 方法,关闭文件或输入输出流。
不过,在字符流中,读取的字符需要进行编码转换,以适应不同的字符编码方案。
例如,在读取文本文件时,需要将读取到的字符进行 UTF-8 编码转换,以确保读取的字符符合文本文件的格式。
javaFile文件操作和文件流的详解(福哥出品)

一. 创建文件(1)最常用的(获得一个固定路径下的文件对象)File parentFile = new File“( D:\\My Documents\\ ”);//参数是一个路径的字符串。
(2)在父目录创建一个名为child 的文件对象, child 为文件对象的名字File chileFile= new File(“ D:\\My Documents\\................................................. ” ,Stringchild);或 File chileFile= new File(parentFile,String child); 二,常见文件夹属性和方法(1)createNewFile();该方法的作用是创建指定的文件。
该方法只能用于创建文件,不能用于创建文件夹,且文件路径中包含的文件夹必须存在File file=new ("D:\\My Document\\text.txt");file.createNewFile();这样就会在 D 盘下的 My Document 创建 text.txt 的记事本(注意:首先得保证 D 盘下有 My Documen 这个文件夹)(2)mkdir();根据File对象的名字(路径)创建一个目录(文件夹),如果是相对目录,则新建的目录在当前目录下(3)mkdirs();如果 File 对象名字有多级目录,则可以调用该方法一次性创建多级目录。
(4)exists();判断 File 对象指向的文件是否存在,返回一个 boolean 类型(5)isDirectory();判断 File 对象指向的文件是否为目录,返回一个 boolean 类型的值, true 或者 false。
(6) getName();获得文件名称(不带路径)( 7) length ();得到 File 对象指向文件的长度,以字节计算,返回一个长整形的值(Io ng);注意:在系统中,文件夹(目录)的大小为零,也就是不占用空间,使用length()时返回的是0( 8) deIete() ;删除 File 对象所指定的文件( 9) isFile();判断 File 对象指向的文件是不是标准文件(就像图片,音乐文件等)三,文件的属性和方法1.File.separator 当前操作系统的名称分隔符,等于字符串“ ”.2.File.pathSeparator 当前操作系统的路径分隔符,等于字符串3.File file=new ("D:\\My Document\\text.txt");file.canExecute(); 测试应用程序是否可以执行该文件 ;4.F ile file=new ("D:\\My Document\\text.txt");file.canRead(); 测试用用程序是否可以读取该文件5.file.canWrite(); 测试用程序是否可以修改文件6.file.exists(); 测试此抽象路径名表示的文件或目录是否存在7.f pareTo(file1);按字母顺序比较两个抽象路径。
java文件流介绍

Input / Output:指跨越出JVM的边界,与外界数据的源头或者目标数据源进行数据交换.输出Output------------------------------->JVM 数据源<-------------------------------输入Input注意:输入/输出是针对JVM 而言。
File 类可表示一个文件,也有可能是一个目录(在JA V A中文件和目录都属于这个类中,而且区分不是非常的明显,可以调用isDirectory()和isFile()来判断)。
File file = new File("c:\\abc.txt");常用的方法:exists() 用来判断文件或目录是否在硬盘存在。
isDirectory() 判断是否是目录isFile() 判断是否是文件mkdir() 创建目录mkdirs() 创建目录包括它下面的子目录。
getAbsolutePath() 得到文件绝对路径list() 得到文件名的String数组(得到当前目录下的文件名,目录名)listFiles() 返回File类型数组,(目录,文件的File对象)可用getName()得到文件名。
delete() 删除文件getName() 得到文件名getPath() 得到文件相对路径separtor() 得到文件分隔符//这个方法有更好的通用性,平台不同结果不同deleteOnExit() 在进程退出的时候删除文件,常用在临时文件的删除。
1、流的概念:输出流程序----------->文件、网络程序<-----------数据来源输入流2、流的分类:按处理方式来分:字节流:按8位传输InputStream OutputStream字符流:按16位传输Reader Writer按功能来分:节点流:与文件、网络打交道的流,操作数据的来源处理流(包装流):操作节点流如何区分:输入流:以InputStream、Reader结尾的流FileInputStream BufferedReader输出流:以OutputStream、Writer结尾的流FileOutputStream PrintWriter字节流:以InputStream、OutputStream结尾的流字符流:以Reader、Writer结尾的流节点流:看构造器,参数为数据来源,参数是String或File之类的new FileInputStream("d:\\abc.txt");new FileOutputStream(new File("d:\\abc.txt"))处理流:构造器的参数为其它流new BufferedReader(new InputStreamReader(new FileInputStream("d:\\abc.txt")));PrintWriter选择流时:首先确定是输入还是输出。
java io流详解

java io流详解Java IO流是Java中的一个重要概念,它被用于文件的输入和输出,网络数据传输等方面。
本文将详细介绍Java IO流的使用以及其相关的知识点,让大家能够更好地了解并使用该重要技术。
一、流概述流是Java中非常重要的一个概念。
流实际上是一种在程序和存储设备之间传输信息的方式。
Java中的流是基于输入/输出(I/O)操作的,使用Java IO流,程序就可以从文件或网络中读取信息,也可以将信息写入到文件或网络中。
二、Java IO流分类Java IO流分为两类:字节流和字符流:1. 字节流是以字节(Int流)为单位传输数据,它适合传输二进制文件(如图片、音乐)等数据。
2. 字符流是以字符为单位传输数据,它适合传输文本文件等数据。
字节流又分为输入字节流和输出字节流,字符流又分为输入字符流和输出字符流。
三、Java IO流的基本操作1. 数据的输入:使用Java IO流读取文件的数据,可以使用FileInputStream类。
使用Java io输入流的步骤具体如下:① 创建输入流对象,即FileInputStream类。
② 读取数据,即使用read()方法读取数据。
③ 关闭读取流,即使用close()方法。
2. 数据的输出:使用Java IO流将数据写入到文件中,可以使用FileOutputStream类。
使用Java io输出流的步骤具体如下:① 创建输出流对象,即FileOutputStream类。
② 写入数据,即使用write()方法将数据写入文件中。
③ 关闭输出流,即使用close()方法。
3. 文件的复制:使用Java IO流可以轻松实现文件的复制。
具体操作步骤如下:① 创建输入流对象,即FileInputStream类。
② 创建输出流对象,即FileOutputStream类。
③ 读取数据,即使用read()方法读取数据,并调用write()方法写入到输出流中。
④ 关闭输入流和输出流。
JAVA输入输出流和文件操作

JAVA输入输出流和文件操作
1、JAVA输入输出流
Java的输入/输出流机制是Java中最基本的控制机制,它是把Java 程序和外部文件和网络服务之间建立的数据传输通道,是Java程序访问来自外部资源的基本手段。
Java的输入/输出流机制是Java中最基本的控制机制,它是把Java 程序和外部文件和网络服务之间建立的数据传输通道,是Java程序访问来自外部资源的基本手段。
Java的输入/输出流机制是将不同的数据源统一到同一结构,从而使Java程序与各种外部资源(文件、网络服务)之间可以进行输入/输出操作。
普通的Java程序可以使用这些IO流来读取和写入文件,从而实现文件的操作。
Java的输入/输出流系统分为字节流和字符流两种。
字节流是用来处理二进制数据流的,可以用来处理原始数据流;而字符流是用来处理字符流的,可以用来处理文本文件。
2、JAVA文件操作
文件是操作系统中用来存储信息的基本单位,在JAVA编程中,我们使用File来操作文件,File类是java.io包中的类,它是为了访问底层操作系统提供的文件和目录的操作方法。
File类可以用来操作一些文件系统相关的信息,比如:文件名、文件大小、文件是否存在等等,我们可以使用File类来实现文件的创建、删除、复制、移动等操作。
另外,如果要实现文件的读写操作。
javafileoutputstream使用方法

javafileoutputstream使用方法Java中的FileOutputStream是一种用于写入二进制数据的输出流。
它将数据写入文件,并且支持按字节、字节数组和字符数组的写入操作。
使用FileOutputStream可以创建并写入新文件,也可以追加写入已存在的文件。
使用FileOutputStream的基本步骤如下:1. 创建FileOutputStream对象:通常会使用文件名或文件对象作为参数来创建FileOutputStream对象。
例如,可以使用以下方式创建一个新文件输出流:```FileOutputStream fos = new FileOutputStream("filename");```2. 写入数据:可以使用write(方法将数据写入文件。
write(方法有多种重载形式,可以接受不同类型的参数,包括int、byte、byte数组和String。
以下是几种常用的写入方法示例:- 使用write(int b)方法写入一个字节数据:```fos.write(65); // 写入ASCII码为65的字节,即大写字母A```- 使用write(byte[] b)方法写入字节数组的数据:```byte[] data = {65, 66, 67, 68}; // A, B, C, Dfos.write(data); // 写入字节数组```- 使用write(byte[] b, int off, int len)方法写入字节数组的一部分数据:```byte[] data = {65, 66, 67, 68}; // A, B, C, Dfos.write(data, 1, 2); // 从字节数组的索引1开始写入2个字节,即B, C```- 使用write(String str)方法写入字符串数据:```String str = "Hello, World!";fos.write(str.getBytes(); // 写入字符串的字节数组```3. 刷新和关闭流:写入完成后,需要调用flush(方法刷新缓冲区并将数据写入文件。
Java InputStream和OutputStream,Reader和Writer的辨析

Java InputStream和OutputStream,Reader和Writer的辨析对Java 的文件操作中的一些概念做了个总结,资料收集+自己理解。
文本文件I/O:概念辨析:File 类:File 类中提供了文件的创建、目录的创建、删除、文件列表、获取文件有关信息等操作,不涉及文件内容的读和写,读与写的操作要靠write() 和read() 方法。
Writer 和Reader:Writer 和Reader 用于字符流的写入和读取,也就是说写入和读取的单位是字符,如果读与写的操作不涉及字符,那么是不需要Writer 和Reader 的。
Writer 类(抽象类),子类必须实现的方法仅有write()、flush()、close()。
继承了此类的类是用于写操作的“Writer”。
Reader 类(抽象类),子类必须实现的方法仅有read()、close()。
继承了此类的类是用于读操作的“Reader”write()方法和read()方法:write()方法是将数据写入到文件(广义概念,包括字节流什么的)中。
read()方法是将文件(广义概念,包括字节流什么的)中的数据读出到缓冲目标上。
InputStream和OutputStream:InputStream:此抽象类是表示字节输入流的所有类的超类。
字节输入流相当于是一个将要输入目标文件的“流”。
InputStream有read() 方法而没有write()方法,因为它本身代表将要输入目的文件的一个“流”OutputStream:此抽象类是表示输出字节流的所有类的超类。
输出流接受输出字节并将这些字节发送到某个接收器。
是从文件中将要输出到某个目标的“流”。
OutputStream有write()方法而没有read()方法。
InputStreamReader和OutputStreamWriter:InputStreamReader是字节流通向字符流的桥梁:它使用指定的charset 读取字节并将其解码为字符。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
java 文件流操作2010-05-08 20:17:23| 分类:java SE | 标签:|字号大中小订阅java中多种方式读文件一、多种方式读文件内容。
1、按字节读取文件内容InputStream 读取的是字节2、按字符读取文件内容InputStreamReader 读取的是字符3、按行读取文件内容BufferredReader 可以读取行4、随机读取文件内容import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.RandomAccessFile;import java.io.Reader;public class ReadFromFile {/*** 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。
* @param fileName 文件的名*/public static void readFileByBytes(String fileName){File file = new File(fileName);InputStream in = null;try {System.out.println("以字节为单位读取文件内容,一次读一个字节:");// 一次读一个字节in = new FileInputStream(file);int tempbyte;while((tempbyte=in.read()) != -1){System.out.write(tempbyte);}in.close();} catch (IOException e) {e.printStackTrace();return;}try {System.out.println("以字节为单位读取文件内容,一次读多个字节:");//一次读多个字节byte[] tempbytes = new byte[100];int byteread = 0;in = new FileInputStream(fileName);ReadFromFile.showAvailableBytes(in);//读入多个字节到字节数组中,byteread为一次读入的字节数while ((byteread = in.read(tempbytes)) != -1){System.out.write(tempbytes, 0, byteread);}} catch (Exception e1) {e1.printStackTrace();} finally {if (in != null){try {in.close();} catch (IOException e1) {}}}}/*** 以字符为单位读取文件,常用于读文本,数字等类型的文件* @param fileName 文件名*/public static void readFileByChars(String fileName){File file = new File(fileName);Reader reader = null;try {System.out.println("以字符为单位读取文件内容,一次读一个字节:"); // 一次读一个字符reader = new InputStreamReader(new FileInputStream(file));int tempchar;while ((tempchar = reader.read()) != -1){//对于windows下,rn这两个字符在一起时,表示一个换行。
//但如果这两个字符分开显示时,会换两次行。
//因此,屏蔽掉r,或者屏蔽n。
否则,将会多出很多空行。
if (((char)tempchar) != 'r'){System.out.print((char)tempchar);}}reader.close();} catch (Exception e) {e.printStackTrace();}try {System.out.println("以字符为单位读取文件内容,一次读多个字节:");//一次读多个字符char[] tempchars = new char[30];int charread = 0;reader = new InputStreamReader(new FileInputStream(fileName));//读入多个字符到字符数组中,charread为一次读取字符数while ((charread = reader.read(tempchars))!=-1){//同样屏蔽掉r不显示if ((charread == tempchars.length)&&(tempchars[tempchars.length-1] != 'r')){ System.out.print(tempchars);}else{for (int i=0; i<charread; i++){if(tempchars[i] == 'r'){continue;}else{System.out.print(tempchars[i]);}}}}} catch (Exception e1) {e1.printStackTrace();}finally {if (reader != null){try {reader.close();} catch (IOException e1) {}}}}/*** 以行为单位读取文件,常用于读面向行的格式化文件* @param fileName 文件名*/public static void readFileByLines(String fileName){File file = new File(fileName);BufferedReader reader = null;try {System.out.println("以行为单位读取文件内容,一次读一整行:");reader = new BufferedReader(new FileReader(file));String tempString = null;int line = 1;//一次读入一行,直到读入null为文件结束while ((tempString = reader.readLine()) != null){//显示行号System.out.println("line " + line + ": " + tempString);line++;}reader.close();} catch (IOException e) {e.printStackTrace();} finally {if (reader != null){try {reader.close();} catch (IOException e1) {}}}}/*** 随机读取文件内容* @param fileName 文件名*/public static void readFileByRandomAccess(String fileName){ RandomAccessFile randomFile = null;try {System.out.println("随机读取一段文件内容:");// 打开一个随机访问文件流,按只读方式randomFile = new RandomAccessFile(fileName, "r");// 文件长度,字节数long fileLength = randomFile.length();// 读文件的起始位置int beginIndex = (fileLength > 4) ? 4 : 0;//将读文件的开始位置移到beginIndex位置。
randomFile.seek(beginIndex);byte[] bytes = new byte[10];int byteread = 0;//一次读10个字节,如果文件内容不足10个字节,则读剩下的字节。
//将一次读取的字节数赋给bytereadwhile ((byteread = randomFile.read(bytes)) != -1){System.out.write(bytes, 0, byteread);}} catch (IOException e){e.printStackTrace();} finally {if (randomFile != null){try {randomFile.close();} catch (IOException e1) {}}}}/*** 显示输入流中还剩的字节数* @param in*/private static void showAvailableBytes(InputStream in){try {System.out.println("当前字节输入流中的字节数为:" + in.available()); } catch (IOException e) {e.printStackTrace();}}public static void main(String[] args) {String fileName = "C:/temp/newTemp.txt";ReadFromFile.readFileByBytes(fileName);ReadFromFile.readFileByChars(fileName);ReadFromFile.readFileByLines(fileName);ReadFromFile.readFileByRandomAccess(fileName);}}二、将内容追加到文件尾部import java.io.FileWriter;import java.io.IOException;import java.io.RandomAccessFile;/*** 将内容追加到文件尾部*/public class AppendToFile {/*** A方法追加文件:使用RandomAccessFile* @param fileName 文件名* @param content 追加的内容*/public static void appendMethodA(String fileName,String content){try {// 打开一个随机访问文件流,按读写方式RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw"); // 文件长度,字节数long fileLength = randomFile.length();//将写文件指针移到文件尾。