我有一个奇怪的问题,如果能解决就太好了。出于调试目的(和其他一些原因),我需要将控制台Java应用程序的日志记录在标准输出上。有些内容会被写入标准输出,而一些错误信息则会被打印到标准错误流上。问题在于这两个流并不完全同步,因此打印行的顺序并不总是正确的。我猜测这是因为有许多内容被打印出来,可能导致其中一个输出的缓冲区已满,另一个输出流在刷新之前就已经打印了。
比如,我想要写出这样的东西:
syso: aaa
syso: bbb
syso: ccc
syso: ddd
syso: eee
syserr: ---
有时会打印什么
aaa
bbb
ccc
---
ddd
eee
有时候两行文字之间没有换行,看起来就像这样:aaa
bbb
ccc---
ddd
eee
每次我在输出上打印东西时,都会使用相同的输出进行清除。System.out.flush();
或者System.err.flush();
如何解决这个问题? 顺便说一句,所有内容都是在Eclipse控制台中打印的。