当前位置: 首页 > 面试题库 >

PrintWriter append方法未附加

印劲
2023-03-14
问题内容

这不会编译,以下方法只会写出我添加的最新项目,而不会追加到以前的条目中。我究竟做错了什么?

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) {...}
}

问题答案:

PrintWriter调用方法的事实append()并不意味着它会更改正在打开的文件的模式。

你还需要以附加模式打开文件:

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

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



 类似资料:
  • 6.7.1.BuildExcerpts (产生文本摘要和高亮) 原型:function BuildExcerpts ( $docs, $index, $words, $opts=array() ) 该函数用来产生文档片段(摘要)。连接到searchd,要求它从指定文档中产生片段(摘要),并返回结果。 $docs为包含各文档内容的数组。$index为包含索引名字的字符串。给定索引的不同设置(例如字符

  • 这是我的log4j2。xml配置文件: 输出如下所示: 缺少右方括号。如何配置log4j2以添加结束标记?

  • 如果输入正确的值(int值),该程序工作正常。但是,当我输入一个字符或任何其他错误的值时,它会显示错误的输入消息并再次调用main方法。唯一的问题是在调用main方法并输入正确的输入后,它会打印出额外的数据,为什么?

  • 一切正常。但Logcat中显示了一些错误。 E/RecyclerView:未附加适配器;跳过布局 E/RecyclerView:未附加适配器;跳过布局 我的activity代码: 我读过与同一问题有关的其他问题,但都没有帮助。请帮帮我

  • 对于上面的modbus轮询查询,我没有得到哪个是crc值,以及使用了什么类型的crc。它是怎么来的,77是设备的id。请指引我。 我从轮询设备得到以下响应

  • 问题内容: 我在Java中有一个子类问题。我有以下课程: 在我的主班上,我打电话给: 这是行不通的,因为Iterator没有实现 foo() 函数。没有类型转换,怎么可能使它工作?必须来自Iterator类型。 问题答案: Java编译器仅允许调用属于 声明 的变量类型的方法。如果您使用 您正在告诉编译器: _我创建了一个Iterator实例,该实例的类型为MainIterator,但是您无需在其