可能重复:
将 java 输出打印到文件
在 Java 程序中,我有一个很长的方法(我认为发布它并不重要,因为它对问题并不重要),它有大量的 println 语句来将状态更新打印到控制台。
我不想将这些打印输出到控制台,而是希望它们进入一个 txt 文件,我可以在其中存储它们并稍后查看它们。
有没有一种简单的方法来重定向输出而无需手动执行每个 println 语句?
如果没有,最好的方法是什么?
可能重复:
将 java 输出打印到文件
在 Java 程序中,我有一个很长的方法(我认为发布它并不重要,因为它对问题并不重要),它有大量的 println 语句来将状态更新打印到控制台。
我不想将这些打印输出到控制台,而是希望它们进入一个 txt 文件,我可以在其中存储它们并稍后查看它们。
有没有一种简单的方法来重定向输出而无需手动执行每个 println 语句?
如果没有,最好的方法是什么?
我以前必须这样做,它不是很整洁,我希望你不是为了最后一段代码而这样做,但我做到了:
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();
System 类有一个静态方法,System.setOut(PrintStream out)
. 您所要做的就是创建自己的 PrintStream 写入文件,将其填充到此方法中,一切就绪。
更好的不那么脆弱的解决方案:不要使用 System.out.printFoo(...) 而只是使用记录器,并根据当时的目的更改记录级别。
, PrintStream out
System.out
。out