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