当我在eclipse中使用sonarlint分析一些关闭finally块中的FileReader的代码时,sonarint会提示我"关闭这个‘FileReader’",这是由规则"Resources should be close"生成的。这是SonarLint的bug吗?。这是SonarLint的bug吗?
我不能使用try with resources功能,因为我们的项目使用JDK 1.6
代码如下:
FileReader fr = null;
try {
fr = new FileReader(pidFile);
oldPid = new BufferedReader(fr).readLine();
}
catch (IOException e) {
LOGGER.error(e.getMessage(), e);
}
finally {
try {
if (fr != null) {
fr.close();
}
}
catch (IOException e) {
LOGGER.error(e.getMessage(), e);
}
}
您没有关闭finally块中的缓冲读取器。我建议您删除finally块中的所有内容,并添加以下内容IOUtils.closeQuietly(fr);
IOUtils.closeQuietly(oldPid);