考虑典型代码:
try {
FileReader fr = new FileReader("42.txt");
BufferedReader br = new BufferedReader(fr);
} finally {
//??
}
close
子句中的finally
是否应该同时为close
子句调用,或仅{1}}只有一个读者(如果是,那么哪一个?)。
我认为只关闭最外部的包装器就足够了,因为以下代码使用try with resources只会关闭br
:
try (BufferedReader br = new BufferedReader(new FileReader("42.txt"))) {
}
答案 0 :(得分:1)
最外面的一个。然后,如果它正确实现,它将在包装的流等上调用close()
(对于JDK类肯定是这样)。