需要在txt文件中停止单词覆盖JAVA

时间:2013-03-24 17:38:05

标签: java file text joptionpane

我正在尝试使用.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();
}

2 个答案:

答案 0 :(得分: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) {
         }
      }
}

答案 1 :(得分:0)

问题是您在方法结束时关闭了流。每次调用它时,它将重新创建FileWriter和PrintWriter,获取输入,将其添加到文件,然后再次关闭它。解决此问题的一种方法可能是创建一个静态String对象,并每次向其添加用户输入。在程序结束时,将该字符串写入该文件,然后将其关闭。