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退出时才会执行删除此路径下的文件。

你可能感兴趣的:(java)