SONAR issue - Close this FileInputStream(SONAR 问题 - 关闭此 FileInputStream)
问题描述
如何解决此 SONAR 问题?关闭这个 FileInputStream.
How do I fix this SONAR issue? Close this FileInputStream.
提前致谢!
File billFile = new File(filePath);
try (BufferedReader br = new BufferedReader(new InputStreamReader(
new FileInputStream(billFile), DEFAULTCHARSET));) {
...
br.close();
} catch (FileNotFoundException e) {
LOG.error(e.getMessage());
} catch (IOException e) {
LOG.error(e.getMessage(), e);
}
推荐答案
当你使用 try-with-resources 语句,您不再需要显式关闭 BufferedReader
,因此只需删除 br.close();
来自您当前的代码,这应该足以解决您的声纳问题,因为 BufferedReader
将在关闭时关闭底层 InputStreamReader
并且 InputStreamReader
将在关闭时关闭您的 FileInputStream
.
As you use the try-with-resources statement, you don't need to close your BufferedReader
explicitly anymore so simply remove br.close();
from your current code which should be enough to fix your sonar issue as a BufferedReader
will close the underlying InputStreamReader
on close and the InputStreamReader
will close your FileInputStream
on close.
如果还不够,您可以简单地重写您的代码,将您的 FileInputStream
显式声明为您的 try-with-resources 语句的资源,如下所示:
If not enough, you could simply rewrite your code to explicitly declare your FileInputStream
as a resource of your try-with-resources statement like below:
try (FileInputStream fis = new FileInputStream(billFile);
Reader reader = new InputStreamReader(fis, DEFAULTCHARSET);
BufferedReader br = new BufferedReader(reader) {
...
<小时>
如果仍然无法正常工作,请确保为 Java 7 及更高版本正确配置了声纳,否则它不会意识到可能导致此违规的 try-with-resources 语句提高.
这篇关于SONAR 问题 - 关闭此 FileInputStream的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:SONAR 问题 - 关闭此 FileInputStream
基础教程推荐
- 无法使用修饰符“public final"访问 java.util.Ha 2022-01-01
- 如何使用 Java 创建 X509 证书? 2022-01-01
- 降序排序:Java Map 2022-01-01
- FirebaseListAdapter 不推送聊天应用程序的单个项目 - Firebase-Ui 3.1 2022-01-01
- Java:带有char数组的println给出乱码 2022-01-01
- “未找到匹配项"使用 matcher 的 group 方法时 2022-01-01
- Java Keytool 导入证书后出错,"keytool error: java.io.FileNotFoundException &拒绝访问" 2022-01-01
- 在 Libgdx 中处理屏幕的正确方法 2022-01-01
- 设置 bean 时出现 Nullpointerexception 2022-01-01
- 减少 JVM 暂停时间 >1 秒使用 UseConcMarkSweepGC 2022-01-01