字符缓冲流(BufferedReader、BufferedWriter)
BufferedReader 是字符流,输入流,处理流;BufferedWriter 是字符流,输出流,处理流。我们称之为字符缓冲流
字符缓冲流默认有8192字符大小的的缓冲区,就是8192大小的字符数组。
------------------------------------------
BufferReader
构造方法
- BufferedReader(Reader in) 创建一个使用默认大小输入缓冲区的缓冲字符输入流
- BufferedReader(Reader in, int sz) 创建一个使用指定大小输入缓冲区的缓冲字符输入流
成员方法
- String readLine() 读取一个文本行,读到文件末尾返回 null
//使用 BufferedReader 读取文件内容 public class Test03 { public static void main(String[] args) throws IOException { //1)建立流通道 //1.1 先建立字符流通道 FileReader fileReader = new FileReader("D:\\yexiao1793\\file\\test02.txt"); //1.2对字符流进行缓冲 BufferedReader bufferedReader = new BufferedReader(fileReader); //2)读取,常用的方法是readLine()一次读取一行, 读到文件末尾返回null String line = bufferedReader.readLine(); while ( line != null ){ System.out.println( line ); line = bufferedReader.readLine(); } //3)关闭 bufferedReader.close(); } }
------------------------------------------
BufferedWriter
构造方法
BufferedWriter(Writer out) 创建一个使用默认大小输出缓冲区的缓冲字符输出流
BufferedWriter(Writer out, int sz) 创建一个使用给定大小输出缓冲区的新缓冲字符输出流
成员方法
void newLine() 写入一个行分隔符
//使用 BufferedWriter 把字符保存到文件中 public class Test04 { public static void main(String[] args) throws IOException { //1)建立流通道 BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("D:\\yexiao1793\\file\\test02.txt", true)); //文件存在则追加内容,无则创建 //2)通过字符流写入数据 bufferedWriter.write("hello"); bufferedWriter.newLine(); // 换行 bufferedWriter.write("world"); //3)关闭 bufferedWriter.close(); } }
------------------------------------------
整合
// 完成文本文件的复制 import java.io.*; public class CopyFile { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new FileReader("day09\\Test.java")); BufferedWriter bw = new BufferedWriter(new FileWriter("day09\\Copy.java")); String line; while ((line = br.readLine()) != null){ // 读一行 bw.write(line); // 写一行 bw.newLine(); // 换行 } br.close(); bw.close(); } }