我希望能够从 java 执行一个外部命令,例如“ls”,并以字符串的形式实时获取输出和错误流的输出,并按照它们生成的顺序。
因此,如果命令的输出类似于:
blah <- to stdout
foo <- to stderr
bar <- to stdout
然后,理想情况下,我希望输出字符串和实时输出看起来像:
blah
foo
bar
朴素的方法会产生:
blah
bar
(即没有标准错误输出)
或者:
blah
bar
foo
(即重新排列顺序,使stdout 和stderr 消息不会相互交错)。