我可以解复用流吗?
我想将 Process
的 stderr (getErrorStream
) 和 stdout (getInputStream
) 加入到单个 Stream
中在别处消费。 Java 库中有什么可以帮我做到这一点吗?
注意:没有外部库。我对 Apache Commons IO 等提供的解决方案不感兴趣。我只想知道JDK是否有自带的东西。
I want to join stderr (getErrorStream
) and stdout (getInputStream
) of a Process
into a single Stream
to be consumed elsewhere. Is there anything in Java's library that will do that for me?
Note: no external libraries. I'm not interested in the existence of a solution provided by, say, Apache Commons IO. I only want to know if there's something that comes with JDK.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
ProcessBuilder.redirectErrorStream (boolean)
做你想要的。编辑:@Since Java 5 或更高版本因此应该广泛可用。
ProcessBuilder.redirectErrorStream(boolean)
does what you want.EDIT: @Since Java 5 or later so should be widely available.
您可以使用一个SequenceInputStream来合并2个InputStream。
You can use a SequenceInputStream to merge the 2 InputStream.
不,JDK 中没有任何东西可以做到这一点(直到 6、7 中我还没有查看每个类)。
No, there is no thing that does that in the JDK (up until 6, in 7 I haven't looked at every class yet).