Java:如何将控制台输出保存到文本文件?

时间:2014-01-31 09:26:36

标签: java file-io

例如,在代码中,我有:System.out.println("Hello World");

控制台将打印:Hello World

所以,我想将控制台输出保存到文本文件中。有人可以通过这个暗示我吗?

2 个答案:

答案 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重新分配。