PrintWriter 追加方法不追加

新手上路,请多包涵

以下方法只写出我添加的最新项目,它不会附加到以前的条目。我究竟做错了什么?

 public void addNew() {
    try {
        PrintWriter pw = new PrintWriter(new File("persons.txt"));
        int id = Integer.parseInt(jTextField.getText());
        String name = jTextField1.getText();
        String surname = jTextField2.getText();
        Person p = new Person(id,name,surname);
        pw.append(p.toString());
        pw.append("sdf");
        pw.close();
    } catch (FileNotFoundException e) {...}
}

原文由 snnlankrdsm 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 749
2 个回答

PrintWriter 的方法被称为 append() 的事实并不意味着它改变了正在打开的文件的模式。

您还需要以追加模式打开文件:

 PrintWriter pw = new PrintWriter(new FileOutputStream(
    new File("persons.txt"),
    true /* append = true */));

另请注意,文件将以系统默认编码编写。它并不总是需要的,并且可能会导致互操作性问题,您可能需要明确指定文件编码。

原文由 axtavt 发布,翻译遵循 CC BY-SA 3.0 许可协议

PrintWriter pw = new PrintWriter(new FileOutputStream(new File("persons.txt"),true));

true 是附加标志。请参阅 文档

原文由 Stephan 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏