gpt4 book ai didi

java - 是否应该向 BufferedReaders 传递一个动态 FileReader?

转载 作者:行者123 更新时间:2023-11-30 07:01:13 24 4
gpt4 key购买 nike

如问题所述,传递动态 FileReader 是不好的做法吗?这个/这个 FileReader 是否应该被充分关闭?

BufferedReader buffReader = new BufferedReader(
new FileReader(new File("C:/Path/To/File.txt")));
.... do something
buffReader.close();

FileReader 是否也应该关闭?这样做需要分居吗?

也许是个简单的问题,但我对 Java IO 不是很精通;如果是这样的话,我们深表歉意。提前致谢!

最佳答案

不,没有必要。 buffReader.close() 也会关闭 FileReader。

出于某种原因,这似乎没有在 Javadoc 中提及。但是,如果您查看 BufferedReader 的源代码,您会发现 close 定义为:

public void close() throws IOException {
synchronized (lock) {
if (in == null)
return;
in.close();
in = null;
cb = null;
}
}

其中 in 是包装的 Reader(在本例中是 FileReader)。因此,关闭 BufferedReader 也会关闭 FileReader

这是我所知道的所有“包装器”的情况 - InputStreamOutputStreamReaderWriter,包括 InputStreamReader 之类的东西。

关于java - 是否应该向 BufferedReaders 传递一个动态 FileReader?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29984568/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com