1

こんにちは、.txt ファイルを使用して単語リストを作成しようとしています。ここで、JOptionPane ウィンドウからユーザーの入力を取り、それをテキスト ファイルの新しい行に保存します。私が抱えている問題は、複数の単語を入力すると、既に存在するデータが上書きされることです。行をスキップして現在のリストに追加したい。これは私が持っているコードです:

public static void Option1Method() throws IOException
{
     FileWriter aFileWriter = new FileWriter("wordlist.txt");
     PrintWriter out = new PrintWriter(aFileWriter);
     String word = JOptionPane.showInputDialog(null,"Enter word or phrase: ");

     out.println(word);

     out.close();
     aFileWriter.close();
}
4

2 に答える 2

1

filewriter の最後に true を置くだけで、追加モードに切り替わります。

public static void Option1Method(){
   FileWriter aFileWriter = null;
   PrintWriter out = null;
      try {
         aFileWriter = new FileWriter("wordlist.txt",true);
         out = new PrintWriter(aFileWriter);
         String word = JOptionPane.showInputDialog(null, "Enter word or phrase: ");
         out.println(word);
      } catch (IOException iOException) {
      } catch (HeadlessException headlessException) {
      } finally {
         out.close();
         try {
            aFileWriter.close();
         } catch (IOException iOException) {
         }
      }
}
于 2013-03-24T19:00:27.440 に答える
0

問題は、メソッドの最後でストリームを閉じていることです。これを呼び出すたびに、FileWriter と PrintWriter が再作成され、入力が取得されてファイルに追加され、再び閉じられます。これを回避する 1 つの方法は、静的 String オブジェクトを作成し、毎回ユーザー入力を追加することです。プログラムの最後で、その文字列をファイルに書き込んで閉じます。

于 2013-03-24T17:43:50.113 に答える