我正在用Java编写一个程序,其中输出被写入.txt文件。每次运行程序时,文件都会被覆盖。我不想使用追加开关并将数据添加到文件中。
我想拥有它,所以每次运行程序时都会创建一个具有相同名称的新文件。例如,如果overflow.txt
是文件名,并且我运行程序三次,则应该生成文件overflow(1).txt
,overflow(2).txt
和overflow(3).txt
。
如何实现这一目标?
答案 0 :(得分:3)
检查文件是否存在,如果是,则重命名。使用File.exists
和FileUtils.moveFile
您需要递归执行此操作,直到找不到冲突。
答案 1 :(得分:3)
首先检查文件是否存在。如果是,请修改名称。
String origName = "overflow";
String ext = ".txt";
int num = 1;
file = new File(origName + ext);
while (file.exists()) {
num++;
file = new File(myOrigFileName +"(" + num + ")" + ext);
}
根据实际要求进行修改。问题不是很清楚。
答案 2 :(得分:2)
“具有相同名称的新文件”在大多数文件系统中没有意义。
在您的示例中,您有三个不同名称的文件:
括号中的位仍然是名称的一部分。如果您想模仿该行为,则必须:
答案 3 :(得分:1)
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";
}
答案 4 :(得分:0)
当您实例化File对象时,请验证它是否存在,如果存在,只需添加大括号和数字重命名,然后再次检查。