2.3 缓冲区流方式读写文件
在使用字符流的write()或者read()方法时,都会导致从底层输入输出流读取或者写入一个或多个字节。要启用从字节到字符的有效转换,可以提前从底层输入输出流中读取更多的字节,使其超过满足当前读取操作所需的字节。为了达到最高效率,可以使用缓冲流方式读写文件。缓冲流方式的类是BufferedReader类和BufferedWriter类。如图所示。
2.3.1文件数据的写入
通过BufferedWriter类实现文件的写入,该类的基类是Writer类。
2.3.1.1 创建文件流
BufferedWriter缓冲区流是由OutputStreamWriter类获得的,而OutputStreamWriter类又是由FileOutputStream类获得的。
FileOutputStream fos = new FileOutputStream(filePath);
OutputStreamWriter osw = new OutputStreamWriter(fos);
BufferedWriter bw = new BufferedWriter(osw);
2.3.1.2 写入文件流
通过BufferedWriter类的write()方法将数据写入到文件流中。
bw.write(content);
其中,content是String类的对象,表示要写入到文件中的数据。
2.3.1.3 关闭文件流
此时需要关闭的文件流为缓冲区文件流、字节文件流和字符文件流。
bw.close();
osw.close();
fos.close();
2.3.2 文件数据的读取
通过BufferedReader类实现文件的写入,该类的基类是Reader类。
2.3.2.1 创建缓冲区流
BufferedReader类的使用方法与BufferedWriter类的使用方法类似。
FileInputStream fis = new FileInputStream(filePath);
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);
2.3.2.2 读取缓冲区流
通过BufferedReader类的read()方法读取缓冲区流。
br.read(content);
其中,content是char[]类型,用来保存从文件中读取的数据。
2.3.2.3 关闭缓冲区流
br.close();
isr.close();
fis.close();
3 小结
今天学习了使用流实现写入读取文件的三种方法,这三种流分别是字节流、字符流和缓冲区流。其中,字节流中操作的数据单元是字节,主要通过FileInputStream和FileOutputStream类实现;字符流中操作的数据单元是字符,主要通过InputStreamReader和OutputStreamWriter类实现;缓冲区流属于字符流,通过将字符读取或写入到缓冲区的方式提高了读写效率,通过BufferedReader类和BufferedWriter类实现。
本文介绍了使用BufferedReader和BufferedWriter类进行高效文件读写的流程。包括通过创建缓冲流来提高读写效率的方法,以及如何正确地打开、操作和关闭这些流。缓冲流能够批量处理字符数据,显著提升文件操作速度。

被折叠的 条评论
为什么被折叠?



