假设我有一个 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/