有什么方法可以延迟流程执行?

时间:2012-04-12 20:55:16

标签: java groovy

我正在使用Groovy编写一个包装器脚本(但问题实际上是一个Java)并且想知道是否可以创建一个Process而不让它先运行。问题是进程开始运行并在stdout和stderr上生成输出。我想将它们转发到适当的目的地,同时创建一个合并的流,以便在脚本中进行处理。然而,我遇到的问题是Process过快地生成输出,前两行的输出有点乱码。我想在进程开始运行之前设置流。有办法吗?

1 个答案:

答案 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"
  }
}