如何在Java中将多个对象结果写入一个输出文本文件?

如何在Java中将多个对象结果写入一个输出文本文件?,java,Java,我有多个具有不同输出的对象,我希望在一个文本文件中打印所有结果,每个对象的结果在一行上,而不覆盖任何值 我已经编写了以下代码;但是,输出文本文件仅保存最后一个对象(Object2)的值。我希望输出文件保存结果,如下所示: Q = 1 Q = 2 您正在用新信息覆盖Out.txt文件。您需要添加数据 将您的线路替换为以下内容: writer = new PrintWriter(new BufferedWriter(new FileWriter("C:\\Users\\My Documen

我有多个具有不同输出的对象,我希望在一个文本文件中打印所有结果,每个对象的结果在一行上,而不覆盖任何值

我已经编写了以下代码;但是,输出文本文件仅保存最后一个对象(Object2)的值。我希望输出文件保存结果,如下所示:

Q = 1    
Q = 2

您正在用新信息覆盖
Out.txt
文件。您需要添加数据

将您的线路替换为以下内容:

writer = new PrintWriter(new BufferedWriter(new FileWriter("C:\\Users\\My Document\\Desktop\\Out.txt", true)));

使用
FileWriter
是正确的方法。你也不需要用任何东西来包装它

在构造函数中指定
true
将启用追加模式(因此在后续运行时要小心)。因为Q不能同时为1和2,所以在完成块之后,我们写一行新行

因为这是一个try-with-resources语句,所以您不必担心在完成后关闭资源,因为这是为您准备的

try (FileWriter writer = new FileWriter("test.txt", true)) {
    if (Q == 1) {
        writer.write("Q =" + 1);
    }
    if (Q == 2) {
        writer.write("Q = " + 2);
    }
    writer.write("\n");
} catch (IOException e) {
    e.printStackTrace();
}

使用一个。您可以将其包装在
BufferedWriter
中,并获得
newLine
支持。另外,看看如何更好地管理您的资源。您只为Q=1或Q=2写东西的原因是什么?我如何添加数据?
try (FileWriter writer = new FileWriter("test.txt", true)) {
    if (Q == 1) {
        writer.write("Q =" + 1);
    }
    if (Q == 2) {
        writer.write("Q = " + 2);
    }
    writer.write("\n");
} catch (IOException e) {
    e.printStackTrace();
}