当从文本文件中读取内容时,通常会创建一个 FileReader
并将其嵌套在一个 BufferedReader
中。我应该在完成读取后关闭两个 reader 中的哪一个呢?这有什么区别吗?
FileReader fr = null;
BufferedReader br = null;
try
{
fr = new FileReader(fileName);
br = new BufferedReader(fr);
// ...
}
finally
{
// should I close fr or br here?
}
当谈到异常安全问题时,我有点偏执。当 BufferedReader
构造函数抛出异常时会发生什么?它会关闭嵌套的读取器吗?还是保证不会抛出异常?
BufferedReader
的文档和代码,以确定构造函数是否真的有任何可能发生异常的机会。 - cthulhu