2017-02-02 29 views
0

我想創建一個編輯文本文件的簡單程序(用Java編寫) - 特別是在文本文件中隨機位置插入任意文本的文件。如何在使用Java編寫文本文件時插入新行

舊的文本文件:

Noodles 
Cereal 
Tomato 
Carrot 
Fish 
Meat 

輸出:

Please insert new record: 
1 
Cornflake 

Please insert new record: 

新的文本文件:

Noodles 
Cereal 
Tomato 
Carrot 
Fish 
Meat 
Cornflake 

我就檢查我文本文件並將其插入到我的文本文件中,但是當我再次運行程序時,例如,我想插入冰淇淋,那麼它應該在玉米片後添加,但是它會用冰淇淋代替玉米片。但我該如何解決這個問題?

的Java:

String INPUT_PROMPT ="Please insert new record:"; 
BufferedReader reader = new BufferedReader 
        (new InputStreamReader (System.in)); 
      line = reader.readLine(); 

while(!line.equals("x")) 
{ 
      switch(line) 
      {  
       case "1": 
       line = reader.readLine(); 

        FileWriter fw=new FileWriter(inFile); 
        BufferedWriter bw=new BufferedWriter(fw); 
        PrintWriter pw=new PrintWriter(bw); 

        for(int k=0; k< prdct.size(); k++) 
        { 
         pw.println(prdct.get(k).toString()); 
        } 
        pw.write(line); 
        pw.write("\n"); 
        pw.close();  
        break; 
      } 
      System.out.println(INPUT_PROMPT); 
      line = reader.readLine(); 


} 
+0

問題重新詢問[這裏](http://stackoverflow.com/questions/42014744/append-a-new-line-of-text-to-an-existing-text-file-using-java )。拉姆齊 - 請不要這樣做! –

回答

2

這個問題可能是很多人的一個副本,但你需要在追加模式,它通過傳遞true在構造函數的第二個參數進行打開FileWriter

FileWriter fw = new FileWriter(inFile, true); 

Javadoc for FileWriter(File file, boolean append)

給定一個File對象構造一個FileWriter對象。如果第二個參數爲true,則字節將寫入文件的末尾而不是開頭。

相關問題