使用Java的java.nio.file.readAllLines时是否需要使用try-with-resource?

时间:2019-12-26 10:08:03

标签: java file-io io try-catch

使用java.nio.file.readAllLines时,是否需要关闭资源?

我在网上的一些示例中看到他们没有这样做。

例如此处https://www.programcreek.com/java-api-examples/?class=java.nio.file.Files&method=readAllLines 他们捕获了IOException,但没有关闭任何资源。

任何帮助将不胜感激,谢谢!

2 个答案:

答案 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错误或其他运行时异常。

因此,不需要您执行任何操作来关闭文件或其他资源。因此,您阅读的示例在这一点上是完整且正确的。

文档链接