import java.io.*;
class FileTest{
public static void main(String [] args) throws Exception{
File f=new File("1.txt");
f.createNewFile();
f.deleteOnExit();
Thread.sleep(30000);/*这句代码,我想应该是Thread.sleep(3000);再f.deleteOnExit();而不是现在这样,怎么成了现在这种先脱出再睡眠三秒钟呢????*/
}
}
请大家帮我看看那个问题……
class FileTest{
public static void main(String [] args) throws Exception{
File f=new File("1.txt");
f.createNewFile();
f.deleteOnExit();
Thread.sleep(30000);/*这句代码,我想应该是Thread.sleep(3000);再f.deleteOnExit();而不是现在这样,怎么成了现在这种先脱出再睡眠三秒钟呢????*/
}
}
请大家帮我看看那个问题……
怎么回事呢???
如果线程不sleep的话,可能你还没看到效果,程序就已经执行完毕了
public void deleteOnExit()在虚拟机终止时,请求删除此抽象路径名表示的文件或目录。仅在虚拟机正常终止时,才会试图执行删除操作,这在 Java Language Specification 中已定义。
一旦已经请求执行删除操作,就无法取消该请求。所以应小心使用此方法。 注:此方法不应 用于文件锁定,因为所得到的协议可能无法可靠地工作。应该使用 FileLock 设施替代。
抛出:
SecurityException - 如果存在安全管理器,且其 SecurityManager.checkDelete(java.lang.String) 方法拒绝对文件进行删除访问
从以下版本开始:
1.2
另请参见:
delete()