我想从进程的输出和错误流中读取并将它们合并到一个文本流中。我的程序很时髦,如下所示:
def mergeStream = new ByteArrayOutputStream()
process.waitForProcessOutput(mergeStream, mergeStream)
问题是 ByteArrayOutputStream 不是线程安全的,waitForProcessOutput() 会生成两个附加到 mergeStream 的线程。有我可以使用的线程安全变体吗?你还有什么建议我控制对mergeStream的访问?看起来在实践中,这个实现有时会删除字符。