gpt4 book ai didi

java - 这真的是资源泄漏吗

转载 作者:行者123 更新时间:2023-11-29 04:41:52 25 4
gpt4 key购买 nike

FileOutputStream fos = new FileOutputStream(f, true);
FileChannel fileChannel = fos.getChannel();
FileWriter fileWriter = Channels.newWriter( fileChannel, Charset.forName("UTF-8").newEncoder(), -1 );
....
fileWriter.close()

我收到一个编译器警告,因为“fos”没有关闭,我有资源泄漏。我假设,但迄今为止未能证明,当我调用“fileWriter.close()”时,资源被清理了。

最佳答案

不,这不是资源泄漏,而是编译器不够聪明,无法解决这个问题。

当您关闭 FileWriter 时,它会关闭 FileChannel,进而关闭 FileOutputStream

当然,不同的 JVM 可能不是这种情况。我只看过 Oracle 的 Java8 rt.jar 中的代码。

因为它没有被声明为 FileWriter 的公共(public)契约的一部分,所以明确关闭您创建的所有流是个好主意。

关于java - 这真的是资源泄漏吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38885542/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com