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

u0sqgete  于 2023-10-14  发布在  Java
关注(0)|答案(2)|浏览(135)

所以让我们说我有一个txt文件,我想写一个PrintWriter。为什么下面的代码每次调用时都删除文件的旧内容?
代码:

  1. import java.io.File;
  2. import java.io.FileNotFoundException;
  3. import java.io.PrintWriter;
  4. public class Test {
  5. public static void main(String[] args) {
  6. writeToFile("foo");
  7. writeToFile("bar");
  8. }
  9. public static void writeToFile(String text) {
  10. try {
  11. PrintWriter printer = new PrintWriter(new File("myTextFile.txt"));
  12. printer.println("Your text is:" + text);
  13. printer.close();
  14. } catch (FileNotFoundException fnfe) {
  15. fnfe.printStackTrace();
  16. }
  17. }
  18. }

输出量:

  1. Your text is:bar

我猜这是因为每次调用方法时都要创建一个新的PrintWriter或一个新的File,但是在main方法中只创建一个示例也无法正常工作。

z31licg0

z31licg01#

如果你想添加到一个文件的内容,你需要显式地打开文件进行追加;大多数语言的默认设置是覆盖。
在Java中,使用new FileWriter("myfile.txt", true)。如果需要的话,您可以在其周围 Package PrintWriter。

xwbd5t1u

xwbd5t1u2#

做一些类似的事情:

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

应该可以。
调用

  1. printWriterName.println("Hello");

应该在myfile.txt中添加一个“Hello”行,而不删除之前的内容。
谢谢@keshlam

相关问题