我们如何将eclipse控制台输出重定向到文件?我可以:
Run Configuration
- > Commons
- > Select a file
System.setOut(PrintStream)
和System.setErr(PrintStream)
。1)的问题是我需要将控制台输出记录到不同的文件而不是一个文件。
2)的问题是它只存储由System.out.println()
生成的控制台输出或抛出异常的堆栈跟踪。它不捕获其他类型的输出,例如log4j警告等。
我们如何以编程方式将控制台输出重定向到不同的文件?
答案 0 :(得分:175)
转到运行方式并选择Run Configurations
- > Common
,在标准输入和输出中,您也可以选择文件。
答案 1 :(得分:8)
您可以通过以下方式以编程方式设置System.out的输出:
System.setOut(new PrintStream(new BufferedOutputStream(new FileOutputStream("/location/to/console.out")), true));
编辑:
由于此解决方案基于PrintStream
,我们可以启用autoFlush,但根据docs:
autoFlush - 布尔值;如果为true,则刷新输出缓冲区 每当写入一个字节数组时,就有一个println方法 调用,或写入换行符或字节(' \ n')
因此,如果没有写新行,请记得手动System.out.flush()
。
(谢谢Robert Tupelo-Schneck)
答案 2 :(得分:0)
我们可以通过以下方式设置System类的变量来实现这个目的
System.setOut(new PrintStream(new FileOutputStream("输出文件的路径")))。此外,您需要关闭或刷新(System.out.close()或System.out.flush())变量,以便您不会丢失某些输出。
来源:http://xmodulo.com/how-to-save-console-output-to-file-in-eclipse.html