首页 > 编程笔记 > Java笔记 阅读:2

Java中的BufferedReader和BufferedWriter类(附带实例)

在 Java 中,BufferedReader 是 Reader 类的子类,与 BufferedInputStream 类在功能和实现上基本相同,但它适用于字符读入。在输入时,BufferedReader类提供了按字符、数组和行进行高效读取的方法。

BufferedReader 类的构造方法如下:
① BufferedReader(Reader in)
② BufferedReader(Reader in,int size)

BufferedReader 类提供了 String readLine() 方法,Reader 类没有提供此方法。使用 String readLine() 方法能够读取文本的一行内容,读一行时,以字符换行符(\n)或回车符(r)作为行结束符。String readLine() 方法的返回值为该行不包含结束符的字符串内容,若已到达流末尾,则返回 null。

和 BufferedReader 相对的,BufferedWriter 是 Writer 类的子类,与 BufferedOutputStream 类在功能和实现上基本相同,但它适用于字符输出。在输出时,BufferedWrite 类提供了按字符、数组和字符串进行高效输出的方法。

BufferedWriter 类的构造方法如下:
① BufferedWriter(Writer out)
② BufferedWriter(Writer out,int size)

BufferedWriter 类的方法与 Writer 类的方法相同。除此之外,BufferedWrite 类增加了创建行分隔符的方法——String newLine(),行分隔符字符串由系统属性 line.separator 定义。

【实例】使用 BufferedReader 类与 BufferedWriter 类实现文本文件的复制。
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;

public class Example {
    public static void main(String[] args) {
        copyFile("D:\\Example.java",
                 "D:\\chapter\\back_Example.java");
    }

    // 基于字符缓存流复制文件
    public static void copyFile(String srcfile, String desfile) {
        try (
            BufferedReader br = new BufferedReader(new FileReader(srcfile));
            BufferedWriter bw = new BufferedWriter(new FileWriter(desfile));
        ) {
            String temp = "";
            while ((temp = br.readLine()) != null) {
                bw.write(temp);
                // 每次写入完毕,再写入一个换行符
                bw.newLine();
            }
            bw.flush();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
运行程序后,会将源文件 D:\Example.java 的内容复制到 D:\chapter\back_Example.java 文件中。

相关文章