File.createTempFile检查文件是否存在?

时间:2014-05-16 13:32:07

标签: java

如果我使用此方法,并且偶然存在具有相同名称的临时文件,则文件会被覆盖? 我很长一段时间都在谈论会生成许多临时文件的应用程序。

2 个答案:

答案 0 :(得分:5)

来自标有createTempFile的行上的2here)上的JavaDoc,

  

此方法及其任何变体都不会在当前虚拟机调用中再次返回相同的抽象路径名。

修改

返回部分说

  

表示新创建的空文件的抽象路径名

而且,它进一步陈述

  

在指定目录中创建一个新的空文件,使用给定的前缀和后缀字符串生成其名称。如果此方法成功返回,则保证:在调用此方法之前,返回的抽象路径名表示的文件不存在

答案 1 :(得分:0)

我建议你使用计数器来创建一个新的文件名,如果已存在这样的话

File file = new File(filename);
for (int i = 0; file.exists(); i++) {
file = new File(filename + i);
}
//write the file now

希望它能给出一个想法!