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

时间:2014-03-15 17:16:31

标签: 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或新文件这一事实有关,但是在main方法中只创建了一个实例也无法正常工作

1 个答案:

答案 0 :(得分:2)

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

要在Java中执行此操作,请使用new FileWriter("myfile.txt", true)。然后,如果需要,您可以将PrintWriter包装在其周围。