在Java中关闭包装的资源

时间:2017-03-02 20:59:19

标签: java io

考虑典型代码:

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"))) {
} 

1 个答案:

答案 0 :(得分:1)

最外面的一个。然后,如果它正确实现,它将在包装的流等上调用close()(对于JDK类肯定是这样)。