重定向大量的System.out.println年代为.txt文件[复制](Redirect lot

2019-08-08 11:41发布

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

在Java程序中,我有很长的方法,(我不认为是很重要的后期,因为它不是问题的关键),有大量的println语句的打印状态更新到控制台。

而不必打印这些到控制台,我希望他们进入一个txt文件,我可以存储他们后来审查。

有一个简单的方法来重定向输出,而不通过每个println语句,手动去?

如果没有,什么是去了解这一点的最好方法是什么?

Answer 1:

该系统类有一个静态方法, System.setOut(PrintStream out) 。 所有你所要做的就是创建自己的PrintStream写入一个文件,将它填满到这个方法,你所有的设置。

更好的那么脆弱的解决办法:不要使用System.out.printFoo(...),而是只使用一个记录器,并更改日志记录级别,因为它当时适合你的目的。



Answer 2:

我已经收到要做到这一点,是不是很整齐,我希望你是不是做它的代码最后一块,但我所做的:

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();


Answer 3:

  1. 额外的参数添加到方法, PrintStream out
  2. 搜索和替换System.outout你的方法。
  3. 完成。
  4. (呼叫方法与围绕一个FileOutputStream包裹一个PrintStream)


文章来源: Redirect lots of system.out.println's to a .txt file [duplicate]