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

只需在文件编写器的末尾加上 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,获取输入,将其添加到文件中,然后再次关闭它。解决此问题的一种方法可能是创建一个静态 String 对象,并每次都向其中添加用户输入。在程序结束时,将该字符串写入文件,然后关闭它。

于 2013-03-24T17:43:50.113 回答