2

当我在 Eclipse 中使用 sonarlint 对 finally 块中关闭 FileReader 的代码进行 ananyze 时,sonarlint 提示我“关闭此'FileReader'”,这是由“资源应该关闭”规则生成的。这是来自 SonarLint 的错误吗?这是来自 SonarLint 的错误吗?

我不能使用 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);
    }
}
4

1 回答 1

0

您没有在 finally 块中关闭缓冲读取器。我建议您删除 finally 块中的所有内容并添加以下内容
IOUtils.closeQuietly(fr); IOUtils.closeQuietly(oldPid);

于 2017-07-09T15:28:54.623 回答