PrintWriter 在写入时删除 txt 文件的旧内容

问题描述 投票:0回答:2

假设我有一个 txt 文件,我想用 PrintWriter 写入该文件。为什么下面的代码每次调用时都会删除文件的旧内容?

代码:

import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;

public class Test {

    public static void main(String[] args) {
        writeToFile("foo");
        writeToFile("bar");
    }

    public static void writeToFile(String text) {
        try {
            PrintWriter printer = new PrintWriter(new File("myTextFile.txt"));
            printer.println("Your text is:" + text);
            printer.close();
        } catch (FileNotFoundException fnfe) {
            fnfe.printStackTrace();
        }
    }

}

输出:

Your text is:bar

我猜测这与以下事实有关:每次调用该方法时我都会创建一个新的 PrintWriter 或一个新文件,但在主方法中只创建一个实例也无法正常工作。

java text printwriter
2个回答
4
投票

如果要添加文件内容,则需要显式打开文件进行追加;大多数语言的默认设置是覆盖。

要在 Java 中执行此操作,请使用

new FileWriter("myfile.txt", true)
。如果需要,您可以将 PrintWriter 包裹在其周围。


0
投票

做类似的事情:

FileWriter fileWriterName = new FileWriter("myfile.txt", true);
PrintWriter printWriterName = new PrintWriter(fileWriterName);

应该可以。

打电话

printWriterName.println("Hello"); 

应在 myfile.txt 中添加“Hello”行,而不删除之前的内容。

谢谢@keshlam

© www.soinside.com 2019 - 2024. All rights reserved.