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

标签 java text printwriter

假设我有一个 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 中执行此操作,请使用 new FileWriter("myfile.txt", true)。如果需要,您可以将 PrintWriter 包裹在其周围。

关于java - PrintWriter在写入时删除txt文件的旧内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22427094/

相关文章:

java - 使用 Java 包装器类声明变量

java - org.openqa.selenium.remote.UnreachableBrowserException

python - 在 python 中将多个列表写入文本文件 - 2.7

file - 批处理 - 有没有办法批量同步锁定txt文件?

java - 将大行写入文件

java - 使用 try-catch block 、文件编写器和打印编写器在 java 中创建自定义类

java - 安装并编译 JacORB

java - Guice:可以注入(inject)模块吗?

python - 从文本文件打印链接会在中间产生 "line gap"

java - 使用自动换行将字符串 ArrayList 打印到 PrintWriter