2

在 Java 中,我已重定向System.out:System.setOut("someText.txt");以写入文本文件。我想每小时运行一次这个程序,并想将每组打印语句附加到文件的末尾。例如,假设在第 1 小时,我的程序运行,打印“Hello\n”然后退出。然后在第 2 小时,我的程序运行,打印“hello again\n”,然后退出。

如果发生这种情况,我希望我的文本文件的内容类似于:

Hello
Hello again

目前,我只是覆盖文本文件。

  1. 如何使用此重定向的 printStream 附加到文本文件的末尾?

编辑我怎样才能打印到控制台?

4

4 回答 4

6

当您构建 FileOutputStream 时,请使用以下内容:

FileOutputStream(文件文件,布尔附加)

创建一个文件输出流以写入由指定 File 对象表示的文件。

来自JAVADOC

代码示例:

OutputStream outStream = new FileOutputStream("file1.txt",true);
于 2013-01-28T21:00:05.883 回答
2

利用

OutputStream printStream = new OutputStream(new FileOutputStream("someText.txt", true));
System.setOut(printStream);
于 2013-01-28T21:01:38.087 回答
1

@Frank 和 @Petr Mensik 的答案是正确的。但以防万一你想尝试不同的东西:

System.out.append("Hello World\n")应该做的伎俩。因此,不是做 a System.out.print,而是做 aSystem.out.append

于 2013-01-28T21:03:47.780 回答
0

最简单的答案不是使用 Java 代码,而是使用tee; 试图tee用 Java 重新实现只是在重新发明一个方轮。只需这样做:

java -jar yourapp.jar | tee -a output.log

在 Windows 上?安装 MinGW 和/或 Cygwin。:-)

于 2013-02-04T02:43:15.377 回答