File刪除文件delete和deleteOnExit的區別
File中提供了兩個刪除文件的方法,即delte()和deleteOnExit()。他們之間的區別在哪裏呢?
讓我們先看一下,這兩個方法對應的源碼:
delete:
public boolean delete() {
SecurityManager security = System.getSecurityManager();
if (security != null) {
security.checkDelete(path);
}
if (isInvalid()) {
return false;
}
return fs.delete(this);
}
deleteOnExit:
public void deleteOnExit() {
SecurityManager security = System.getSecurityManager();
if (security != null) {
security.checkDelete(path);
}
if (isInvalid()) {
return;
}
DeleteOnExitHook.add(path);
}
我們發現
delete: 即刻刪除此路徑下的文件。
deleteOnExit:在jvm退出時纔會執行刪除此路徑下的文件。