是否有必要关闭 FileWriter,前提是它是通过 BufferedWriter 编写的?

2022-09-04 00:36:35

考虑一个缓冲读取器,如下所示:

writer = new BufferedWriter(new FileWriter(new File("File.txt"), true));

在这种情况下,在应用程序结束时,我正在关闭writerwriter.close()

这样就够了吗?使用 创建的文件编写器不需要关闭吗?new FileWriter(new File("File.txt"), true)


答案 1

没有必要关闭它,因为 BufferedWriter 负责关闭它包装的编写器。

为了说服您,这是BufferedWriter的close方法的源代码:

public void close() throws IOException {
    synchronized (lock) {
        if (out == null) {
            return;
        }
        try {
            flushBuffer();
        } finally {
            out.close();
            out = null;
            cb = null;
        }
    }
}

答案 2

Yes 也会关闭基础编写器/流。writer.close()