为什么刷新在 System.err 上不起作用?
Why is flushing not working on System.err?
我正在开发一个 main class,它通过以下方式编写潜在的异常
e.printStackTrace()
并以
结束
System.err.flush();
System.out.println("\n>>> EXITING...");
问题是当异常跟踪很大时,我的退出消息仍然打印在所有错误布道的中间。
我做错了什么?
System.err
和 System.out
是两个独立的流。即使您刷新输出,也只是意味着所有字符都已发送到 o/s。读取两个流的终端(?)在显示它们时可能仍会交错显示它们。
一种补救方法可能是将流连接在一起,有效地将 System.err
流写入 System.out
,但是您将丢失任何在显示时区分这两个流的颜色等。
有同样的问题。我在冲洗后添加了 Thread.sleep(5) 。然后就成功了。
我正在开发一个 main class,它通过以下方式编写潜在的异常
e.printStackTrace()
并以
System.err.flush();
System.out.println("\n>>> EXITING...");
问题是当异常跟踪很大时,我的退出消息仍然打印在所有错误布道的中间。
我做错了什么?
System.err
和 System.out
是两个独立的流。即使您刷新输出,也只是意味着所有字符都已发送到 o/s。读取两个流的终端(?)在显示它们时可能仍会交错显示它们。
一种补救方法可能是将流连接在一起,有效地将 System.err
流写入 System.out
,但是您将丢失任何在显示时区分这两个流的颜色等。
有同样的问题。我在冲洗后添加了 Thread.sleep(5) 。然后就成功了。