2014-02-20 70 views
3

我試圖增加一個文本文件的名字,以便所有創建的文本文件都有一個唯一的名字,並且按升序排列。這是我迄今得到的代碼。我希望你能理解我在這裏嘗試的邏輯。問題是程序被鎖定或者這個代碼什麼都不做。謝謝。在java中增加一個文本文件的名字

增長爲0

String name = String.valueOf(increase); 
    File file = new File("E:\\" + name + ".txt"); 

    while(file.exists()){ 
     increase++; 


    if(!file.exists()) { 

     try { 

      String content = textfile.toString(); 
      file.createNewFile(); 

      FileWriter fw = new FileWriter(file.getAbsoluteFile()); 
      BufferedWriter bw = new BufferedWriter(fw); 
      bw.write(content); 
      bw.close(); 

      System.out.println("Done"); 

      }catch (IOException e){ 
       e.printStackTrace(); 
       } 
     } 
    } 
+0

第一,如果該文件存在,它會進入一段時間,但死機不若和無限循環的文件永遠不會重新分配..第二的無爲文件犯規進入一段時間,然後甚至從來沒有得到如果和結束 – clancer

+0

嗨。對不起,但我不明白你的意思。你能否以另一種方式解釋它,或者寫下代碼格式應該做什麼?謝謝clancer。 – user3320339

+0

用代碼 – clancer

回答

0

來解釋我的評論與代碼

String name = String.valueOf(increase); 
File file = new File("E:\\" + name + ".txt"); 

while(file.exists()){ 
    increase++; 
    // reassign file this while will terminate when #.txt doesnt exist 
    name = String.valueOf(increase); 
    file = new File("E:\\" + name + ".txt"); 
} // the while should end here 
// then we check again that #.txt doesnt exist and try to create it 
if(!file.exists()) { 

try { 

    String content = textfile.toString(); 
    file.createNewFile(); 

    FileWriter fw = new FileWriter(file.getAbsoluteFile()); 
    BufferedWriter bw = new BufferedWriter(fw); 
    bw.write(content); 
    bw.close(); 

    System.out.println("Done"); 

}catch (IOException e){ 
    e.printStackTrace(); 
} 
// you had a extra close bracket here causing the issue 
} 
// this program will now create a new text file each time its run in ascending order 
+0

謝謝clancer。我很高興看到我的思維過程不是離商標不到一百萬英里。這現在完全適用於我的程序。我可以從評論中看到,文件文件也需要更改。 – user3320339

1

全球INT當你更新你的int變量increase,你不改變你的File file。這就是爲什麼你以無限循環結束的原因。

+1

也''名稱'不會自動更改。 – ajb

相關問題