System.out.println and System.err.println out of order

后端 未结 7 1136
灰色年华
灰色年华 2020-11-22 03:44

My System.out.println() and System.err.println() calls aren\'t being printed to the console in the order I make them.

public static         


        
7条回答
  •  醉梦人生
    2020-11-22 04:07

    They are different streams and are flushed at different times.

    If you put

    System.out.flush();
    System.err.flush();
    

    inside your loop, it will work as expected.

    To clarify, output streams are cached so all the write goes into this memory buffer. After a period of quiet, they are actually written out.

    You write to two buffers, then after a period of inactivity they both are flushed (one after the other).

提交回复
热议问题