在我的應用程序中,我正在寫一個文件來存儲一些執行信息,一旦執行完成,我想刪除臨時文件。這個問題甚至在文件關閉或流清除後我無法刪除文件。我試過Java文件刪除和System.gc()
Thread.sleep(1000);
file.delete();
並且沒有刪除文件。然後我創建了一個while循環
while(!file.delete())
Thread.sleep(1000);
並且它一直循環。然後我添加
System.gc();
file.delete();
它的工作!
我已驗證我已優雅地關閉或刷新文件。我想知道爲什麼我的代碼與System.gc()
一起工作?
在嘗試刪除文件之前,請確保您已關閉所有打開的文件流。 – mre 2012-02-22 16:26:12
這仍然是事實。這是一個與Windows相關的bug JDK-4715154。可能這就是爲什麼在Scala運行時庫中有特殊的'scala.compat.Platform.collectGarbage()'條目。 – Epicurist 2014-08-18 11:46:28