【问题标题】:Could I duplicate or intercept an output stream in Java?我可以在 Java 中复制或截取输出流吗?
【发布时间】:2012-07-26 16:20:58
【问题描述】:

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

【问题讨论】:

  • 请分享你想要实现的代码
  • 绝对有可能,具体实现取决于具体情况。

标签: java outputstream


【解决方案1】:

您可以使用类似TeeOutputStream 的示例,此处解释为Writing Your Own Java I/O Stream Classes

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

写入 System.out 的任何内容都将写入原始 System.out 以及您的流,因此您可以使用它做任何您想做的事情

编辑:

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

【讨论】:

  • 感谢您的关注,我编辑的答案略有不同
【解决方案2】:

看看这个包:org.apache.commons.io.output。我认为TeeOutputStream 就是您要找的。​​p>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多