我可以在Java中复制或拦截输出流吗?

我想拦截标准输出流,然后将内容复制到另一个流,但我也希望保持标准输出流像原始。 我可以用Java实现吗?

您可以使用类似于此处解释的TeeOutputStream示例编写您自己的Java I / O流类

基本上你创建一个TeeOutputStream,给它你的流和当前的System.out然后使用System.setOut和新流。

写入System.out的任何内容都将写入原始的System.out以及您的流中,以便您可以随心所欲地执行任何操作

编辑:

Oracle取消了这个页面,也可以使用Apache Commons的TeeOutputStream来做同样的事情,而无需添加任何代码。

看看这个包: org.apache.commons.io.output 。 我认为TeeOutputStream是你正在寻找的。