File刪除文件delete()和deleteOnExit()的區別

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退出時纔會執行刪除此路徑下的文件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章