与Eclipse相比,这与标准输出和错误流的实现有更多关系。
两者
System.out并
System.err是
PrintStream可以通过缓冲流不自动刷新数据到它们的目的地对象。由于它们是两个内部使用缓冲的不同流,因此写入您的数据可能会交错,因为这些流可能决定在不同时间刷新(缓冲区内容可能在不同时间填充)。
System.err.flush()在打印前两个堆栈跟踪之后,然后
System.out.flush()在打印到std输出流之后调用,应该获得一致的结果。

与Eclipse相比,这与标准输出和错误流的实现有更多关系。
两者
System.out并
System.err是
PrintStream可以通过缓冲流不自动刷新数据到它们的目的地对象。由于它们是两个内部使用缓冲的不同流,因此写入您的数据可能会交错,因为这些流可能决定在不同时间刷新(缓冲区内容可能在不同时间填充)。
System.err.flush()在打印前两个堆栈跟踪之后,然后
System.out.flush()在打印到std输出流之后调用,应该获得一致的结果。