我想拦截标准输出流,然后将内容复制到另一个流,但我也希望保持标准输出流像原始一样。我可以用Java实现吗?
答案 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正是您所寻找的。 p>