【问题标题】:Closing wrapped resources in Java [duplicate]用Java关闭包装的资源[重复]
【发布时间】:2017-07-22 19:02:36
【问题描述】:

考虑典型代码:

try {
    FileReader fr = new FileReader("42.txt");
    BufferedReader br = new BufferedReader(fr);
} finally {
        //??
}

应该为两者或它们调用finally 子句中的close,还是只需要close 一个读者(如果是,那么是哪一个?)。

我认为只关闭最外部的包装器就足够了,因为使用以下使用资源的 try 代码只会关闭 br

try (BufferedReader br = new BufferedReader(new FileReader("42.txt"))) {
} 

【问题讨论】:

    标签: java io


    【解决方案1】:

    最外层。然后它会在包装流等上调用close(),如果它被正确实现(这对于JDK类当然是正确的)。

    【讨论】:

      猜你喜欢
      • 2011-03-03
      • 2019-04-05
      • 2011-03-05
      • 2020-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      相关资源
      最近更新 更多