字符缓冲流(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();
    }
}

 

posted @ 2022-05-25 21:58  鹿先森JIAN  阅读(1047)  评论(0编辑  收藏  举报