我可以解复用流吗?

时间:2012-02-10 16:33:16

标签: java stream io

我想将getErrorStream的stderr(getInputStream)和stdout(Process)加入到其他地方消费的单Stream中。 Java库中有什么东西可以帮我吗?

注意:没有外部库。我对Apache Commons IO提供的解决方案的存在不感兴趣。我只想知道JDK是否附带了什么。

3 个答案:

答案 0 :(得分:1)

ProcessBuilder.redirectErrorStream(boolean)做你想做的事。

  

public ProcessBuilder redirectErrorStream(boolean redirectErrorStream)

     

设置此流程构建器的redirectErrorStream属性。

     

如果此属性为true,则此对象的start()方法随后启动的子进程生成的任何错误输出都将与标准输出合并,以便可以使用{{1 }} 方法。这使得更容易将错误消息与相应的输出相关联。初始值为Process.getInputStream()

编辑:@Since Java 5或更高版本应该广泛使用。

答案 1 :(得分:0)

您可以使用SequenceInputStream合并2 InputStream。

答案 2 :(得分:0)

不,JDK中没有任何东西可以做到这一点(直到6,我还没有看过每一个课程。)