java - 有没有办法判断输入流是否在代码中的任何位置打开和未关闭

标签 java inputstream fileinputstream

我使用 Java 工作,我的 IDE 是 Intellij。 我遇到了生产问题,无法删除已读取(打开)但未正确关闭的文件,仅仅是因为代码中并非所有分支都会导致 fileInputStream.close()。

我在想是否有一种方法可以让 intelij IDEA 遍历我的所有代码并判断是否有打开的 InputStream(例如 FileInputStream)并且没有 close() 方法调用。

这会让我的错误修复得更好。

最佳答案

使用QAPlug-FindBugs插件,将能够检测未关闭的流:

您可以使用 IDEA 插件管理器安装该插件。转到设置,然后搜索插件。然后从 JetBrains 插件安装 QAPlug 和 QAPlug-FindBugs。重新启动 IDE,右键单击您的项目并选择分析代码。然后,如果您有未关闭的流,它将报告。

见下图:

enter image description here

关于java - 有没有办法判断输入流是否在代码中的任何位置打开和未关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26317138/

相关文章:

java - JTable:更改 JCheckBox 的状态

java - InputStream 读取不返回 -1

android - 对Android设备上的文件系统感到困惑

java - FileInputStream 是否已经在使用缓冲区?

java - 如何在 Java 中传递嵌套的 Scala 对象引用?

java - Spring MVC的deferredresult如何发送回客户端(Angular JS)

java - 我如何获得xjc?

c# - StreamReader 问题 - 未知文件编码(西方 ISO 88591)

ios - 在 Swift 4 中从 InputStream 中准确读取 n 个字节

java - 想要文件日期但只能使用FileInputStream