我正在用 Java 编写一个程序,其中输出被写入 .txt 文件。每次我运行程序时,文件都会被覆盖。我不想使用附加开关并将数据添加到文件中。
我想要它,所以每次运行程序时都会创建一个同名的新文件。例如,如果overflow.txt
是文件名,我运行程序3次,文件,,,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 对象时,验证它是否存在,如果存在,只需通过添加大括号和数字来重命名它,然后再次检查。