java - 我需要关闭 Java 中的 IO 流吗?

标签 java memory-leaks io

我正在使用OutputStreamInputStream用于读取和写入 .properties 文件:

try (OutputStream output = new FileOutputStream(path)) {
    // ...
    output.close();
} catch (IOException e) {
    e.printStackTrace();
}

try (InputStream input = new FileInputStream(path)) {
    // ...
    input.close();
} catch (IOException e) {
    e.printStackTrace();
}

但我的 IDE 说这些 close()调用是多余的。如果我不关闭它们会出现内存泄漏吗?这在 Java 中是如何工作的?感谢您的帮助。

最佳答案

使用 try-with-resources 语句会自动关闭资源,因此您的 close() 调用确实是多余的。

您可以阅读有关此主题的更多信息 here

关于java - 我需要关闭 Java 中的 IO 流吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58370372/

相关文章:

haskell - 为什么包装 Data.Binary.Put monad 会导致内存泄漏? (第2部分)

java - I/O 方法不工作

java - 下面类的线程安全是否会被破坏?我确信不可能,但只是想双重确定,因为它不容易测试

javascript - 如果不在 switch case 中声明 block 范围,是否会导致内存泄漏? (ESLint 无案例声明)

C++ Valgrind 无效删除动态数组

java - I/O 错误异常处理 : Unreachable catch block for IOException. try 语句主体永远不会抛出此异常

java - 如何改进 2 列的字符串解析器方法(读取一行上的 2 个字符串)

java - Java中从System.in获取int数组的简单方法

java - 使用 setText 时内存泄漏

Java POI 提供的数据似乎在 Office 2007+ XML 中