File.deleteOnExit()方法是否保证在JVM被异常终止的情况下也能删除文件?
File.deleteOnExit()
不能保证文件被删除。deleteOnExit()
函数。File tempFile = File.createTempFile("tempfile", ".tmp");
RandomAccessFile fh = new RandomAccessFile (tempFile, "rw");
// try to delete the file now, fall back to deletion on exit
if ( !tempFile.delete() ) tempFile.deleteOnExit();
File.deleteOnExit()
不是非常可靠的。因此,尽可能在使用完临时文件后手动关闭和删除它们。有关更多详细信息,请参见我写给另一个问题的答案。只有遵循Java语言规范所定义的正常终止虚拟机的情况下,才会尝试删除。
如果可能的话,下次启动时检查文件。