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

时间:2012-07-26 16:20:59

标签: java outputstream

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

2 个答案:

答案 0 :(得分:5)

您可以使用此处Writing Your Own Java I/O Stream Classes

中解释的TeeOutputStream示例

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

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

编辑:

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

答案 1 :(得分:1)

看一下这个包:org.apache.commons.io.output。我认为TeeOutputStream正是您所寻找的。