Java Sonarqube-性能问题由于方法使用FileInputStream构造函数,有哪些更好的替代方法?

Java Sonarqube-性能问题由于方法使用FileInputStream构造函数,有哪些更好的替代方法?,java,file,sonarqube,inputstream,fileinputstream,Java,File,Sonarqube,Inputstream,Fileinputstream,这是我的密码: KeyStore truststore = KeyStore.getInstance("JKS"); truststore.load(new FileInputStream(TRUSTSTORE_FILE), TRUSTSTORE_PASSWORD.toCharArray()); //sonarqube issue 哪种输入流最适合完成此任

这是我的密码:

        KeyStore truststore = KeyStore.getInstance("JKS");
        truststore.load(new FileInputStream(TRUSTSTORE_FILE), 
                                           TRUSTSTORE_PASSWORD.toCharArray()); //sonarqube issue
哪种输入流最适合完成此任务

以下是全部错误:

This method creates and uses a java.io.FileInputStream or java.io.FileOutputStream object. Unfortunately both of these classes implement a finalize method, which means that objects created will likely hang around until a full garbage collection occurs, which will leave excessive garbage on the heap for longer, and potentially much longer than expected.
我真的需要切换到:

InputStream is = java.nio.file.Files.newInputStream(myfile.toPath());

我对这个不太满意。

请使用资源将它包装起来,以便在块的末尾关闭它。错误消息抱怨文件可能已打开很长时间

try (InputStream in = new FileInputStream(TRUSTSTORE_FILE)) {
    KeyStore truststore = KeyStore.getInstance("JKS");
    truststore.load(in, TRUSTSTORE_PASSWORD.toCharArray());
} // Automatically closes in.

这将释放系统资源(一个文件句柄),并允许其他人覆盖信任库文件。

您可以详细说明收到的Sonarqube问题吗?将其包装在
BufferedInputStream
中。将其包装在资源试用中,以便在块结束时关闭。错误消息抱怨文件可能被打开了很长时间。@ChristofferHammarström我读到你的评论有点晚,你能给出答案吗;你可以模仿我的。谢谢你的建议,但这并不能解决我的问题。我已经更新了完整的错误啊,那太糟糕了。我不同意SonarQube的错误,如果您注意像这样关闭InputStream。不幸的是,除了
文件.newInputStream
,我不知道其他解决方案。它讨论了如何配置SonarQube以了解try with resources语句。