我用Java编写一个程序,输出写入到一个文本文件。 每次我运行该文件被覆盖的程序。 我不想使用append开关和数据添加到文件中。
我想有这么一个新的文件,具有相同的名称,创建的每个我运行程序时。 例如,如果overflow.txt
是文件名,并且我运行该程序三次,将文件overflow(1).txt
, overflow(2).txt
,和overflow(3).txt
应。
如何才能实现这一目标?
我用Java编写一个程序,输出写入到一个文本文件。 每次我运行该文件被覆盖的程序。 我不想使用append开关和数据添加到文件中。
我想有这么一个新的文件,具有相同的名称,创建的每个我运行程序时。 例如,如果overflow.txt
是文件名,并且我运行该程序三次,将文件overflow(1).txt
, overflow(2).txt
,和overflow(3).txt
应。
如何才能实现这一目标?
检查文件是否存在,如果是将其重命名。 使用File.exists
和FileUtils.moveFile
您需要,直到没有发现冲突递归做到这一点。
检查文件是否存在第一。 如果是这样,修改名称。
String origName = "overflow";
String ext = ".txt";
int num = 1;
file = new File(origName + ext);
while (file.exists()) {
num++;
file = new File(myOrigFileName +"(" + num + ")" + ext);
}
根据实际需要修改。 问题不是很清楚。
“具有相同名称的新文件”不会使大多数文件系统的意义。
在你的榜样,你有三个文件有不同的名称:
括号中的比特仍然是名称的一部分。 如果你想模仿这种行为,你必须:
String dirPath = "./";
String fileName = dirPath + "overflow.txt";
if(new File(dirPath + fileName).exist())
{
int counter = 0;
while(new File(dirPath + "overflow(" + ++counter + ").txt").exist());
fileName = "overflow(" + counter + ").txt";
}
当你实例化File对象,验证它是否存在,如果这样做,只是通过增加括号和数量重命名,并再次检查。