2017-02-02 5 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 

私は自分でチェックしますテキストファイルに挿入してテキストファイルに挿入しますが、プログラムを再実行すると、たとえばIce-Creamを挿入したい場合は、Cornflakeの後に追加する必要がありますが、代わりにCornflakeをIce-Creamに置き換えます。しかし、どうすればこの問題を解決できますか?

の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

この質問は、おそらく他の多くの重複ですが、コンストラクタで2番目のパラメータとしてtrueを渡すことによって行われている追加モードでFileWriterを開く必要があります。 Javadoc for FileWriter(File file, boolean append)から

FileWriter fw = new FileWriter(inFile, true); 

Fileオブジェクトを指定してFileWriterオブジェクトを構築します。 2番目の引数がtrueの場合、バイトは最初ではなくファイルの最後に書き込まれます。

関連する問題