字符缓冲输入流:BufferedReader

字符缓冲输出流:BufferedWriter

BufferedReader特有方法:readLine() 读取一整行数据,读到回车换行符为止,但是它不会读取回车换行符。

BufferedWriter特有方法:newLine()跨平台的换行符,可以自动识别系统,根据不同系统使用不同的换行符,不需要在使用\r\n这样的字符串换行符。

 

public class BufferedReaderWriterTest {

    public static void main(String[] args) throws IOException {

        FileReader fr1 = new FileReader("a.txt");
        FileReader fr2 = new FileReader("b.txt");

        // 一次读取1个字符
        method1(fr1);
        System.out.println();
        // 一次读取多个字符
        method2(fr2);

        // 写数据
        FileWriter fw = new FileWriter("c.txt");
        method3(fw);
    }

    private static void method3(FileWriter fw) throws IOException {
        BufferedWriter bw = new BufferedWriter(fw);
        bw.write(97);
        bw.write("b");
        char[] chars = {'h', '哈'};
        bw.write(chars);
        bw.close();
    }

    private static void method2(FileReader fr1) throws IOException {
        BufferedReader br = new BufferedReader(fr1);
        int len;
        char[] bytes = new char[1024];
        while ((len = br.read(bytes)) != -1) {
            System.out.println(new String(bytes, 0, 2));

        }
        br.close();
    }

    private static void method1(FileReader fr1) throws IOException {
        BufferedReader br = new BufferedReader(fr1);
        int b;
        while ((b = br.read()) != -1) {
            System.out.print((char)b);
        }
    }

}

 

public static void main(String[] args) throws IOException {

        FileReader fr1 = new FileReader("a.txt");
        FileWriter fw = new FileWriter("c.txt");
        
        BufferedReader br = new BufferedReader(fr1);
        BufferedWriter bw = new BufferedWriter(fw);
        String s;
        while ((s = br.readLine()) != null) {
            bw.write(s);
            bw.newLine();
        }
        br.close();
        bw.close();

    }