需要停止txt文件中的文字覆盖JAVA

需要停止txt文件中的文字覆盖JAVA,java,file,text,joptionpane,Java,File,Text,Joptionpane,嗨,我正在尝试使用一个.txt文件创建一个单词列表,在这个文件中,我从JOptionPane窗口中获取用户的输入,并将其存储在文本文件的新行中。我遇到的问题是,当我输入多个单词时,它会覆盖已经存在的数据。我希望它跳过一行并将其添加到当前列表中。这是我的代码: public static void Option1Method() throws IOException { FileWriter aFileWriter = new FileWriter("wordlist.txt");

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

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

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

只需在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) {
         }
      }
}

只需在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) {
         }
      }
}