[英]Writing to a file without overwriting or appending
我正在用Java編寫程序,其中輸出被寫入.txt文件。 每次我運行程序時,文件都會被覆蓋。 我不想使用附加開關並將數據添加到文件中。
我想擁有它,因此每次運行程序時都會創建一個具有相同名稱的新文件。 例如,如果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對象時,請驗證它是否存在(如果存在),只需通過添加大括號和數字對其進行重命名,然后再次檢查。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.