Java BufferedReader和BufferedWriter类的用法(附带实例)
Java 中的 BufferedReader 类与 BufferedWriter 类分别继承 Reader 类与 Writer 类。这两个类都具有内部缓存机制,并能够以行为单位进行输入/输出。
根据 BufferedReader 类的特点,可以总结出如下图所示的带缓存的字符数据读取文件的过程。

图 1 BufferedReader类读取文件的过程
BufferedReader 类常用的方法如下:
BufferedWriter 类中的方法都返回 void。常用的方法如下:
在使用 BufferedWriter 类的 Write() 方法时,数据并没有立刻被写入输出流中,而是首先进入缓存区中。如果想立刻将缓存区中的数据写入输出流中,则一定要调用 flush() 方法。
【实例】使用缓冲流读写文本文件。使用 BufferedReader 类和 BufferedWriter 类,向 D 盘根目录下的 word.txt 文件中写入多行内容,然后将其读取出来输出到控制台上。
根据 BufferedReader 类的特点,可以总结出如下图所示的带缓存的字符数据读取文件的过程。

图 1 BufferedReader类读取文件的过程
BufferedReader 类常用的方法如下:
- read() 方法:读取单个字符;
- readLine() 方法:读取一个文本行,并将其返回为字符串。若无数据可读,则返回 null。
BufferedWriter 类中的方法都返回 void。常用的方法如下:
- write(String s, int off, int len) 方法:写入字符串的某一部分;
- flush() 方法:刷新该流的缓存;
- newLine() 方法:写入一个行分隔符。
在使用 BufferedWriter 类的 Write() 方法时,数据并没有立刻被写入输出流中,而是首先进入缓存区中。如果想立刻将缓存区中的数据写入输出流中,则一定要调用 flush() 方法。
【实例】使用缓冲流读写文本文件。使用 BufferedReader 类和 BufferedWriter 类,向 D 盘根目录下的 word.txt 文件中写入多行内容,然后将其读取出来输出到控制台上。
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class BufferedDemo { public static void main(String args[]) { String content[] = {"好久不见", "最近好吗", "常联系"}; // 写入的内容 File file = new File("D:\\word.txt"); // 创建文件对象 try { FileWriter fw = new FileWriter(file); // 文件字符输出流 BufferedWriter bw = new BufferedWriter(fw); // 换成输出流 for (int k = 0; k < content.length; k++) { // 遍历要写入的内容 bw.write(content[k]); // 写入字符串 bw.newLine(); // 写入一个换行符 } bw.close(); // 关闭缓冲输出流 fw.close(); // 关闭文件字符输出流 } catch (IOException e) { e.printStackTrace(); } try { FileReader fr = new FileReader(file); // 文件字符输入流 BufferedReader br = new BufferedReader(fr); // 缓冲输入流 String tmp = null; // 作为缓冲的临时字符串 int i = 1; // 行数 // 从文件中读出一行,如果读出的内容不为 null,则进入循环 while ((tmp = br.readLine()) != null) { System.out.println("第" + i + "行:" + tmp); // 输出读取的内容 i++; // 行数递增 } br.close(); // 关闭缓冲输入流 fr.close(); // 关闭文件字符输入流 } catch (IOException e) { e.printStackTrace(); } } }程序运行之后会向 D 盘根目录下的 word.txt 文件中写入 3 行文字,并且会在控制台输出如下信息:
第1行:好久不见
第2行:最近好吗
第3行:常联系