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语句。