Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何保存每个输入而不必每次重新保存以前的输入_Java - Fatal编程技术网

Java 如何保存每个输入而不必每次重新保存以前的输入

Java 如何保存每个输入而不必每次重新保存以前的输入,java,Java,在尝试将用户输入保存到文件而不覆盖以前的输入时,我发现每次保存新条目并退出程序后,下一次运行程序并查看文本文件时,上一条条目的上一个数据都会重复,或者我应该说是在最后一次文件保存的基础上再次保存。有人知道为什么程序没有只保存最后一个文件,而只是将自己添加到以前的文件中吗?我会感谢任何帮助,这可能真的很简单,但我自己看不出有什么问题,谢谢 下面是我必须保存输入的代码 try { FileWriter fw = new FileWriter("EventsList.txt", true);

在尝试将用户输入保存到文件而不覆盖以前的输入时,我发现每次保存新条目并退出程序后,下一次运行程序并查看文本文件时,上一条条目的上一个数据都会重复,或者我应该说是在最后一次文件保存的基础上再次保存。有人知道为什么程序没有只保存最后一个文件,而只是将自己添加到以前的文件中吗?我会感谢任何帮助,这可能真的很简单,但我自己看不出有什么问题,谢谢

下面是我必须保存输入的代码

try {
    FileWriter fw = new FileWriter("EventsList.txt", true);
    PrintWriter pw = new PrintWriter(fw);

    for (Events e : event) {
        pw.println(Integer.toString(e.getRefNo()));
        pw.println(e.getDate());
        pw.println(e.getArtist());
        pw.println(e.getVenue());
        pw.println(e.getCity());
        pw.println(Double.toString(e.getTicketCost()));
        pw.println(Integer.toString(e.getQuantity()));

    }

    pw.close(); // close output stream

} catch (FileNotFoundException e) {
    e.printStackTrace();
    System.out.println("Error!");
}

break;

将true作为第二个参数传递给PrintWriter以打开“附加”模式


第二个参数是“autoFlash”,而不是“append”。我尝试了这个方法,但当我在保存一个新条目后退出程序,然后重新运行程序时,文件保存了新条目,但仍然再次保存了以前的条目。再看一看,在第二个参数中打开append模式是正确的,正如您所说的Spierz,但是我还需要从filewriter中删除true,因为这是导致问题的原因。谢谢大家的帮助。
PrintWriter pw = new PrintWriter(fw, true);