我正在尝试使用.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();
}
答案 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对象,并每次向其添加用户输入。在程序结束时,将该字符串写入该文件,然后将其关闭。