gpt4 book ai didi

java - 关闭 Channel 或需要关闭 RandomAccessFile 是否足够

转载 作者:行者123 更新时间:2023-12-01 03:32:50 27 4
gpt4 key购买 nike

我正在研究一些 Sonar Qube 报告并在适当的时候修复问题。一些同事在文件访问方面采用的模式是创建 RandomAccessFile实例并得到一个 Channel从中。这个 channel 可以返回给调用代码——然后它负责关闭它。问题是,通过返回 Channel 就不可能关闭 RandomAccessFile创建它的对象 - 所以声纳提示。

可以关闭 Channel并忽略 RandomAccessFile .我看过 RandomAccessFile#close()方法并且可以看到它会关闭Channel,但反过来就不成立了。

另一个类似的例子是一个从 new RandomAccessFile(...) 创建 Channel 的类。然后在另一种方法中关闭 Channel但没有保留对 RandomAccessFile 的引用.是否应该将代码更改为具有指向文件的字段并关闭它?还是没关系?

最佳答案

API 文档没有明确说明,这可能意味着没有保证。

但是,假设 ChannelFileChannel ,然后使用 implCloseChannel 关闭 channel 方法。查看实现,如果父项是 Closeable 的实例,则它是关闭的。 .

关于java - 关闭 Channel 或需要关闭 RandomAccessFile 是否足够,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37000924/

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