SonarLint 提示“关闭这个'FileReader'”,当我关闭时实际上在finally块中关闭了它
Posted
技术标签:
【中文标题】SonarLint 提示“关闭这个\'FileReader\'”,当我关闭时实际上在finally块中关闭了它【英文标题】:SonarLint prompt "Close this 'FileReader'", when I close actually closed it in the finally blockSonarLint 提示“关闭这个'FileReader'”,当我关闭时实际上在finally块中关闭了它 【发布时间】:2016-07-17 21:00:01 【问题描述】:当我在 Eclipse 中使用 sonarlint 对 finally 块中的 FileReader 进行分析时,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);
【问题讨论】:
【参考方案1】:您没有在 finally 块中关闭缓冲读取器。我建议您删除 finally 块中的所有内容并添加以下内容IOUtils.closeQuietly(fr);
IOUtils.closeQuietly(oldPid);
【讨论】:
以上是关于SonarLint 提示“关闭这个'FileReader'”,当我关闭时实际上在finally块中关闭了它的主要内容,如果未能解决你的问题,请参考以下文章