JAVA BufferedWriter 类

FileWriter 缺点

FileWriter 频繁调用 write() 方法,写少量数据,会立即将数据写到硬盘,这样会导致效率低下

解决

使用 BufferedWriter 类,调用 write() 方法时,先将数据写入到 缓冲区 中,缓冲区是 字符数组,长度是 8192 个字符

调用 flush()close() 方法后,才会将数据写到硬盘

例子

public static void main(String[] args) {
    String sep = System.getProperty("line.separator");
    System.out.println("换行符:"+sep);

    BufferedWriter bw = null;
    FileWriter fw = null;
    try {
        fw = new FileWriter("d:\\1.txt");
        bw = new BufferedWriter(fw);
        bw.write("人生无常,大肠包小肠");
        bw.write("床前明月光"+sep);

        // 调用flush(),立即向硬盘写文件 ,后面还可以继续写数据
        bw.flush();

        bw.write("疑是地上霜"+sep);

        bw.flush();
    } catch (IOException e) {
        e.printStackTrace();
    } finally{ // 一定会执行的代码,close() 代码都写在该块中
        if(bw != null){
            try {
                bw.close();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        if(fw != null){
            try {
                fw.close();// 不执行此方法,文件一直被占用,无法删除,写入数据失败
//                fw.write("close() 后不能再写数据");
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
}

原文出处:https://malaoshi.top/show_1IX3b3Vc68W8.html