2011-09-05 154 views
1

這裏是我的代碼停止截斷Java文件?

try { 
     fstream = new FileWriter("/Applications/AirDrop/contacts.txt"); 
     BufferedWriter out = new BufferedWriter(fstream); 

      out.write(stringToInsert); 

     out.close(); 

    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

現在每次我嘗試調用此方法(這是代碼在一個名爲將writeToFile用字符串參數法),它

回答

11

您需要使用two-argument constructor of FileWriter字符串:

fstream = new FileWriter("/Applications/AirDrop/contacts.txt", true); 

更妙的是:不使用FileWriter可言,因爲它總是使用平臺默認的編碼,這通常不是個好主意!相反,你應該明確地指定要使用的編碼(UTF-8通常是一個很好的默認情況下,如果你不知道該選擇什麼其他):

fstream = new OutputStreamWriter(new FileOutputStream("/Applications/AirDrop/contacts.txt", true), "UTF-8"); 

另一個提示:這是很可能的是不斷開放和關閉該文件並不是最好的主意:您通常應該打開文件進行一次寫入,寫下您需要寫入的所有文件,然後關閉它。

+0

謝謝你,如果我不關閉沒有任何文件由於某種原因寫入 –

+1

@Tushar:如果你需要在*關閉之前將數據寫入文件*(通常這對於日誌文件是必需的或類似的東西),那麼你需要調用'flush()'。請注意,我沒有說你應該從不*關閉文件。我只是說你應該打開和關閉文件*一次*。 –

+0

哦,非常感謝 –