有一个 Java 命令可以将标准输出重定向到文件或返回到 标准输出:
PrintStream stdout = System.out;
System.setOut(new PrintStream(logFile));
// ...
System.setOut(stdout);
但我需要两者都拥有。是否可以将 Java 中的标准输出设置为文件和标准输出?
最佳答案
我不知道有一个标准类可以做到这一点,但它非常简单:
- 首先获取“普通”
stdout
PrintStream - 编写您自己的 PrintStream 实现,用于写入文件和另一个 Printstream
- 只需将原始的
stdout
传递到新的 DoublePrintingPrintStream,然后使用setOut()
来使用该“双重打印”流
或者,还有诸如tee之类的工具那可以为你做到这一点。因此,不必用它来打扰您的 Java 代码 - 只需让外部读取标准输出、打印到控制台并写入文件即可。
关于java - 是否可以将 Java 中的标准输出设置为文件和标准输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47670791/