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

Should BufferedReaders be passed a dynamic FileReader?

如问题所述,传递动态 FileReader 是不好的做法吗? this/can this 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

我所知道的所有 "wrappers" 都是这种情况 - InputStreams、OutputStreams、Readers 和 Writer s,包括像 InputStreamReader.

这样的东西