使用java.nio.file.readAllLines时,是否需要关闭资源?
我在网上的一些示例中看到他们没有这样做。
例如此处https://www.programcreek.com/java-api-examples/?class=java.nio.file.Files&method=readAllLines 他们捕获了IOException,但没有关闭任何资源。
任何帮助将不胜感激,谢谢!
答案 0 :(得分:1)
在Files类的'readAllLines(path)'方法中抛出'IOException'有时会抛出Exception,在这里您可以捕获Exception并将正确的错误消息发送给最终用户,否则可能需要遇到运行时问题。
Path Path = null;
try {
Files.readAllLines(Path);
}catch (IOException e) {
//write your error message logic
}
答案 1 :(得分:1)
TL; DR:不。
正如Turing85在评论中所暗示的那样,它在文档中。
您链接到的示例使用的是一个参数SELECT
[IDLIEN]
,[IDCENTREOPERATIONNEL_REF_CENTREOPERATIONNEL]
,[IDCENTREANALYTIQUE_REF_CENTREANALYTIQUE]
,[PRINCIPAL]
,[DATEARCHIVE]
,[VALIDE]
,[CA_MONO_COP]
,[COP_ADMIN]
,[COP_OUVERT]
,[CA_MONO_COP_OUVERT_NON_ADMIN]
FROM
[dbo].[REF_COP_LIEN_CENTREOPERATIONNEL_CENTREANALYTIQUE]
。该方法的文档说:
此方法的工作方式就像调用它等效于评估 表达式:
Files.readAllLines()
此处提到的two-arg方法的文档说:
此方法可确保在所有字节都被删除后关闭文件 读取或抛出I / O错误或其他运行时异常。
因此,不需要您执行任何操作来关闭文件或其他资源。因此,您阅读的示例在这一点上是完整且正确的。
文档链接