我正在使用Groovy编写一个包装器脚本(但问题实际上是一个Java)并且想知道是否可以创建一个Process而不让它先运行。问题是进程开始运行并在stdout和stderr上生成输出。我想将它们转发到适当的目的地,同时创建一个合并的流,以便在脚本中进行处理。然而,我遇到的问题是Process过快地生成输出,前两行的输出有点乱码。我想在进程开始运行之前设置流。有办法吗?
答案 0 :(得分:0)
这会将输出和错误流消耗到两个单独的StringWriters中,但我看不到任何“乱码”
new StringWriter().with { out ->
new StringWriter().with { err ->
'ls /tmp'.execute().with { proc ->
consumeProcessOutput( out, err )
waitFor()
}
println "OUT: $out"
println "ERR: $err"
}
}