gpt4 book ai didi

java - SONAR 问题 - 关闭此 FileInputStream

转载 作者:行者123 更新时间:2023-11-29 04:35:03 25 4
gpt4 key购买 nike

如何解决此 SONAR 问题? 关闭这个 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(); 这应该足以解决您的 Sonar 问题BufferedReader 将在关闭时关闭底层 InputStreamReaderInputStreamReader 将在关闭时关闭您的 FileInputStream


如果还不够,您可以简单地重写您的代码以显式声明您的 FileInputStream 作为您的 try-with-resources 语句的资源,如下所示:

try (FileInputStream fis = new FileInputStream(billFile);
Reader reader = new InputStreamReader(fis, DEFAULTCHARSET);
BufferedReader br = new BufferedReader(reader) {
...

如果它仍然不起作用,请确保为 Java 7 及更高版本正确配置了 Sonar ,否则它不会意识到会导致此违规的 try-with-resources 语句提高。

关于java - SONAR 问题 - 关闭此 FileInputStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41960463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com