java deleteOnExit
程序员文章站
2022-06-09 21:05:21
...
记录下自己的逗比时刻
我想要做一个功能,其中,需要新建一个文件,如果文件已经存在,需要先删除,再新建。于是我想当然的写了这样的代码。
File file = new File("aaa.txt");
file.deleteOnExit();
file.createNewFile();
然而并没有找到我新建的文件。。。
然后我就看了下deleteOnExit方法的注释第一行。
Requests that the file or directory denoted by this abstract pathname be deleted when the virtual machine terminates.
漂亮,原来它是在虚拟机结束的时候执行删除。也就是说,即使我把它写在了createNewFile方法的上面,它也会最后执行。自然会找不到想要新建的文件了。
改的话很简单,直接用delete方法就行了。
File file = new File("aaa.txt");
file.delete();
file.createNewFile();
我现在终于发现了我的问题所在,我一直把deleteOnExit看成了deleteOnExist,字面意思就是在文件存在的时候删除。很庆幸之前没有在正式项目中用错这个方法。。。