例如,在代码中,我有:System.out.println("Hello World");
控制台将打印:Hello World
所以,我想将控制台输出保存到文本文件中。有人可以通过这个暗示我吗?
答案 0 :(得分:6)
创建一个文件,并设置为System类的外部。
File file = new File("out.txt"); //Your file
FileOutputStream fos = new FileOutputStream(file);
PrintStream ps = new PrintStream(fos);
System.setOut(ps);
System.out.println("This goes to out.txt");
答案 1 :(得分:3)
系统类为您提供了一种在不同流中转储输出的方法,即System#setOut(PrintStream out)
使用此方法,您可以将FileInputstream传递给System.setOut
,并且可以保存控制台输出。
PrintStream printStream = new PrintStream(new FileOutputStream(file));
System.setOut(printStream);
这个问题的一个有趣的部分是虽然out
在System类中被声明为final,但仍然通过System#setOut
重新分配。