如果发生异常,是否关闭了newBufferedReader打开的文件?

时间:2016-05-03 15:00:32

标签: java file exception memory-leaks bufferedreader

我通常通过获取BufferedReader来打开文件:

Files.newBufferedReader(myPath).lines()
    .doStuff()
    .doMoreStuff();

当方法抛出异常时会发生什么,读取器会像try-with-resource一样自动关闭吗?我在文档中找不到任何引用。

1 个答案:

答案 0 :(得分:2)

Files.newBufferedReader只是为文件创建BufferedReader的实用程序/工厂方法。在内部,它最终会执行new BufferedReader()来创建BufferedReader。

因此,您必须像使用new运算符创建BufferedReader一样对待它。如果您希望在try块结束时自动关闭它,则必须使用try-with-resource,如果必须使用new运算符创建它。