2014-05-03 57 views
-2

好吧,所以我試圖將多行字符串保存到文本文件,而不覆蓋以前的文本。 println完美地打印它,但保存到文本文件似乎只能保存第一行。將多行字符串保存到文本文件而不覆蓋以前的文本

我有什麼至今(寫入而不覆蓋,但只寫第一行):

    try { 
         FileWriter fileWriter = new FileWriter(FileManager.usernames, true); 

         BufferedWriter bufferedWriter = new BufferedWriter(fileWriter); 
         bufferedWriter.write(multilineString + "\n"); 
         bufferedWriter.close(); 
        } 
        catch(IOException e) { 
         e.printStackTrace(); 
        } 

這個問題的答案可能是簡單的,但我是新來的Java。

+0

我不知道,我明白你的問題。您正在將單個字符串寫入文件。你期望會發生什麼? – user3575404

+0

您正在編寫一個字符串。根據你的代碼,如果你繼續寫一個單一的字符串到一個文件,新的內容將繼續追加。我希望那是你想要的?那麼你面臨的問題是什麼? – Hirak

+0

我想讓它將整個字符串(字符串中有多行)寫入文本文件,但它只寫入第一行。 – user3554270

回答

0

你應該嘗試bufferedWriter.flush();下面是代碼片段可以幫助你

import java.io.BufferedWriter; 
import java.io.FileWriter; 
import java.io.IOException; 

public class WriteIntoFile { 

    public static void main(String[] args) { 
     String multilineString = "This is line 1\nthis is line 2\nthis is last line"; 
      try { 
       FileWriter fileWriter = new FileWriter("multiline.txt", true); 

       BufferedWriter bufferedWriter = new BufferedWriter(fileWriter); 
       bufferedWriter.write(multilineString + "\n"); 
       bufferedWriter.flush(); 
       bufferedWriter.close(); 
       fileWriter.close(); 
      } 
      catch(IOException e) { 
       e.printStackTrace(); 
      } 

    } 

} 
相關問題