一直对JAVA FILE相关操作不是很了解,前段时间对文件操作居然搞出一个病毒来,在一个目录下创建了几百万个文件,删除也没有办法删除。究其原因,我认为就是对FILE API不是很熟悉。
今天维护产品相关工具,看到一段代码,百思不得其解。
好端端的在Temp目录创建了一个File,还没有来得及使用,怎么就delete()调了呢?并且,后面还在compress方法中使用了这个File参数。
一般来讲,如果是需要删除已经存在的文件,很简单,判断该目录下文件是否存在,如果存在就删除之。然后再新建File对象就可以了。
这里的操作思路和我的不太一样,就是这点不一样,差点把我给绕进去了。原来,它是先创建这个临时文件。只是他这样的操作其实是可能存在BUG的。如果在Temp目录下有已经存在的文件,那么这段代码将抛出IOException:)
然后,他将该文件删除,之后再使用这个对象。唉,这是搞不懂,还是觉得不懂。谁会这样子用啊。
今天维护产品相关工具,看到一段代码,百思不得其解。
java 代码
- config_tempFile = File.createTempFile("backup", ".confgtmp");
- config_tempFile.delete();
- step = this.config_propFileMan.compress(config_tempFile, this.signee, step);
一般来讲,如果是需要删除已经存在的文件,很简单,判断该目录下文件是否存在,如果存在就删除之。然后再新建File对象就可以了。
这里的操作思路和我的不太一样,就是这点不一样,差点把我给绕进去了。原来,它是先创建这个临时文件。只是他这样的操作其实是可能存在BUG的。如果在Temp目录下有已经存在的文件,那么这段代码将抛出IOException:)
然后,他将该文件删除,之后再使用这个对象。唉,这是搞不懂,还是觉得不懂。谁会这样子用啊。