是否有必要关闭FileWriter,如果它是通过BufferedWriter写入的



考虑如下BufferedReader:

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

在本例中,在应用程序结束时,我用writer.close()

关闭writer

这就够了吗?用new FileWriter(new File("File.txt"), true)创建的FileWriter不需要关闭吗?

不需要关闭它,因为BufferedWriter会负责关闭它所包装的写入器。

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

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

writer.close()关闭底层写入器/流

最好单独关闭每个打开的流,因为它们都是单独的流。如果有一些错误发生在嵌套流,那么流将无法接近。所以最好独占地关闭每个嵌套流。

详细信息请参考以下链接:

Java中关闭嵌套流和写入器的正确方法

您只需要关闭最外层的流。其余的流是临时的,将自动关闭。如果您单独创建流,然后嵌套它们,在这种情况下,您需要关闭单个流。在Java中关闭嵌套流和写入器的正确方法

相关内容

  • 没有找到相关文章

最新更新