我通常通过获取BufferedReader来打开文件:
Files.newBufferedReader(myPath).lines()
.doStuff()
.doMoreStuff();
当方法抛出异常时会发生什么,读取器会像try-with-resource一样自动关闭吗?我在文档中找不到任何引用。
答案 0 :(得分:2)
Files.newBufferedReader
只是为文件创建BufferedReader
的实用程序/工厂方法。在内部,它最终会执行new BufferedReader()
来创建BufferedReader。
因此,您必须像使用new
运算符创建BufferedReader一样对待它。如果您希望在try块结束时自动关闭它,则必须使用try-with-resource
,如果必须使用new
运算符创建它。