Java文件删除和System.gc()

在我的应用程序中,我正在编写一个文件来存储一些执行信息,执行完成后,我想删除临时文件。问题甚至是在文件被流关闭或刷新后,我也无法删除文件。我试过了

Thread.sleep(1000);

file.delete();

而且也没有删除文件。然后我创建了一个while循环

while(!file.delete())

Thread.sleep(1000);

它一直在循环。然后我加了

System.gc();

file.delete();

而且有效!!!

我已经验证我已经正常关闭或刷新了文件。我想知道为什么我的代码可以使用System.gc()

回答:

那似乎表明您没有打电话close()

原因: 在Java的开始时期,该Object.finalize()方法用于清理垃圾收集,并且对于I / O,它执行了close()

在使用该文件(未关闭)之前,无法在Windows上删除该文件。

以上是 Java文件删除和System.gc() 的全部内容, 来源链接: utcz.com/qa/408858.html

回到顶部