源码

Java:同步标准输出和标准错误


我有一个奇怪的问题,如果我能解决它会很好.出于调试目的(以及其他一些事情),我正在标准输出上编写控制台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控制台中打印出来.

(0)

本文由 投稿者 创作,文章地址:https://blog.isoyu.com/archives/javatongbubiaozhunshuchuhebiaozhuncuowu.html
采用知识共享署名4.0 国际许可协议进行许可。除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。最后编辑时间为:9月 26, 2019 at 03:37 下午

热评文章