SONAR 问题 - 关闭此 FileInputStream

2024-05-09Java开发问题
6

本文介绍了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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

如何使用 JAVA 向 COM PORT 发送数据?
How to send data to COM PORT using JAVA?(如何使用 JAVA 向 COM PORT 发送数据?)...
2024-08-25 Java开发问题
21

如何使报表页面方向更改为“rtl"?
How to make a report page direction to change to quot;rtlquot;?(如何使报表页面方向更改为“rtl?)...
2024-08-25 Java开发问题
19

在 Eclipse 项目中使用西里尔文 .properties 文件
Use cyrillic .properties file in eclipse project(在 Eclipse 项目中使用西里尔文 .properties 文件)...
2024-08-25 Java开发问题
18

有没有办法在 Java 中检测 RTL 语言?
Is there any way to detect an RTL language in Java?(有没有办法在 Java 中检测 RTL 语言?)...
2024-08-25 Java开发问题
11

如何在 Java 中从 DB 加载资源包消息?
How to load resource bundle messages from DB in Java?(如何在 Java 中从 DB 加载资源包消息?)...
2024-08-25 Java开发问题
13

如何更改 Java 中的默认语言环境设置以使其保持一致?
How do I change the default locale settings in Java to make them consistent?(如何更改 Java 中的默认语言环境设置以使其保持一致?)...
2024-08-25 Java开发问题
13