如何在Java中找到未关闭的I / O资源?
2022-09-02 13:52:46
Java 中的许多 I/O 资源(如 InputStream 和 OutputStream)在完成后需要关闭,如此处所述。
我如何在我的项目中搜索此类资源未被关闭的地方,例如这种错误:
private void readFile(File file) throws IOException {
InputStream in = new FileInputStream(file);
int nextByte = in.read();
while (nextByte != -1) {
// Do something with the byte here
// ...
// Read the next byte
nextByte = in.read();
}
// Oops! Not closing the InputStream
}
我尝试过一些静态分析工具,如PMD和FindBugs,但它们没有将上述代码标记为错误。