Redirect lots of system.out.println's to a .txt file [duplicate]

こ雲淡風輕ζ 提交于 2019-12-02 05:15:43

问题


Possible Duplicate:
Print java output to a file

In a Java program, I have a long method, (which I don't think is important to post since it's not vital to the question) that has a large number of println statements to print status updates to the console.

Instead of having these printout to the console, I'd like them to go into a txt file where I can store them and review them later.

Is there a simple way to redirect the output without manually going through each println statement?

If not, what's the best way to go about this?


回答1:


The System class has a static method, System.setOut(PrintStream out). All you have to do is create your own PrintStream that writes to a file, stuff it into this method and you're all set.

Better less fragile solution: Don't use System.out.printFoo(...) but instead just use a logger, and change the logging levels as it suits your purposes at that time.




回答2:


I have had to do this before, it isn't very neat and I hope you aren't doing it for a final piece of code, but I did:

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



回答3:


  1. add extra parameter to the method , PrintStream out
  2. search&replace System.out with out in your method.
  3. done.
  4. (call method with a PrintStream wrapped around a FileOutputStream)


来源:https://stackoverflow.com/questions/14552342/redirect-lots-of-system-out-printlns-to-a-txt-file

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!