2

可能重复:
将 java 输出打印到文件

在 Java 程序中,我有一个很长的方法(我认为发布它并不重要,因为它对问题并不重要),它有大量的 println 语句来将状态更新打印到控制台。

我不想将这些打印输出到控制台,而是希望它们进入一个 txt 文件,我可以在其中存储它们并稍后查看它们。

有没有一种简单的方法来重定向输出而无需手动执行每个 println 语句?

如果没有,最好的方法是什么?

4

3 回答 3

11

我以前必须这样做,它不是很整洁,我希望你不是为了最后一段代码而这样做,但我做到了:

PrintStream ps = new PrintStream("\file.txt");
PrintStream orig = System.out;
System.setOut(ps);
//TODO: stuff with System.out.println("some output");
System.setOut(orig);
ps.close();
于 2013-01-27T21:26:05.307 回答
4

System 类有一个静态方法,System.setOut(PrintStream out). 您所要做的就是创建自己的 PrintStream 写入文件,将其填充到此方法中,一切就绪。

更好的不那么脆弱的解决方案:不要使用 System.out.printFoo(...) 而只是使用记录器,并根据当时的目的更改记录级别。

于 2013-01-27T21:26:47.130 回答
1
  1. 在方法中添加额外的参数, PrintStream out
  2. 在您的方法中 搜索和替换System.outout
  3. 完毕。
  4. (使用包裹在 FileOutputStream 周围的 PrintStream 调用方法)
于 2013-01-27T21:19:54.343 回答