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

标签 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 但不关闭任何资源。

如有任何帮助,我们将不胜感激,谢谢!

最佳答案

TL;DR:没有。

正如 Turing85 在评论中暗示的那样,它在文档中。

您链接到的示例使用 one-arg Files.readAllLines()。该方法的文档说:

This method works as if invoking it were equivalent to evaluating the expression:

    Files.readAllLines(path, StandardCharsets.UTF_8)

这里提到的两个参数方法的文档说:

This method ensures that the file is closed when all bytes have been read or an I/O error, or other runtime exception, is thrown.

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

文档链接

关于java - 使用java的java.nio.file.readAllLines时是否需要使用try-with-resource?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59486837/

相关文章:

c - 从 POSIX I/O(open 等)迁移到 C 标准 I/O(fopen 等)

java - 此 URL 不支持 HTTP 方法 GET,尽管它执行 doGet

c++ - 我的 C++ 程序中的文件输入有问题

c++ - 从 txt 文件 [C++] 中只读取用户名

c++ - 使用 getline 从文件中获取数据

c# - 打开文本文件,遍历内容并检查

javascript - 按频率过滤输入(开关去抖)

java - 针对仅使用一次的值优化变量的使用

Javamail getContent() fatal error java.lang.NoClassDefFoundError

在 appengine-web.xml 中使用静态文件声明时,Javascript 文件将作为 HTML 文件提供