java - 为什么刷新对 System.err 不起作用?

标签 java stream java-8 printstream

我正在开发一个主类,它通过以下方式编写潜在的异常 e.printStackTrace() 并以

结束
System.err.flush();
System.out.println("\n>>> EXITING...");

问题是,当异常跟踪很大时,我的退出消息仍然打印在所有错误讲道的中间。

我做错了什么?

最佳答案

System.errSystem.out 是两个独立的流。即使您刷新输出,也仅意味着所有字符都已发送到操作系统。读取两个流的终端(?)在显示两个流时可能仍会交错。

一种补救措施可能是将流绑定(bind)在一起,有效地将 System.err 流写入 System.out,但您将丢失任何颜色等显示时区分两个流。

关于java - 为什么刷新对 System.err 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36629582/

相关文章:

java-8 - 无法使用 java.util.Base64 正确编码和解码

java - liferay aui 库标签

java - 这个 Spring Security 配置到底意味着什么?

node.js - 强制 Node.js 刷新对子进程的写入

Node.js 读取流无法从文件中正确读取

java - 处理 Set<Foo> 的元素并使用流创建 Set<Bar>

java - Java 1.5 之前的集合框架实现是通用的吗?

java - 基于项目的协同过滤算法,使用mahout计算项目之间的相似度

c++ - 如何从 C++ 中的文件流中检测行的结尾

java - 字符串到本地日期中的月年