如何在一些文件中同时将Java输出打印到shell控制台?那可能吗?
答案 0 :(得分:6)
您可以在程序开头包含以下行:
final PrintStream origout = System.out;
final PrintStream fileout = new PrintStream(file);
System.setOut(new PrintStream(new OutputStream() {
@Override
public void write(int b) throws IOException {
origout.write(b);
fileout.write(b);
}
}));
答案 1 :(得分:2)
您可以使用System.setOut()
将System.Out
重定向到将其输出复制到控制台和文件的自定义OutputStream
。
答案 2 :(得分:0)
您可以写入控制台。并写入文件。你可以将它们单独分开,这样它们就不会相互依赖。
在我所知的同时,没有一个API可以同时执行这两个操作(不是说太多,写一个应该是微不足道的。)
编辑:我误解了吗?你的意思是从Java代码或只是将java二进制文件的输出传递给控制台和文件?在这种情况下,您可以执行以下操作:java Main 2>&1 | tee -a Load.log
答案 3 :(得分:0)
答案 4 :(得分:0)
最简单的方法(因为它不涉及真正的编程)是在Linux,Mac OS X或Windows Powershell中使用 tee 命令,如下所示:
java MyProg | tee outputfile.txt
这适用于任何编程语言,而不仅仅是Java。