我使用FileInputStream在我的Web应用程序中读取.jks文件。不幸的是,我忘了在代码中关闭流,它被转移到生产。 FileInputStream不是静态流,而是局部变量。
我将有机会在一个月或两个月内解决这个问题。
与此同时,由于这个错误,我的应用程序是否有可能崩溃。我是否需要尽快移动修复程序,或者可以等待两个月。
请建议我。
答案 0 :(得分:0)
保持文件打开时间超过必要时间至少会产生以下有害影响:
立即修复。
答案 1 :(得分:0)
很可能没有。只要FileInputStream
对象可由Java垃圾收集器回收。 FileInputStream
和FileOutputStream
以及包围系统资源的许多其他对象(如文件句柄)使用finalize方法在Garbage Collection中执行清理。这不是依赖此行为的最佳解决方案,因为GC不是确定性的,并且文件句柄可能在您使用完毕后很久就会返回到操作系统。
只有在使用文件锁定并且您尝试过快地重新打开同一文件或阻止GC收集流对象时,它才会真正崩溃。