我的System.out.println()
和System.err.println()
调用没有按照我创建的顺序打印到控制台。
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
System.out.println("out");
System.err.println("err");
}
}
这将产生:
out
out
out
out
out
err
err
err
err
err
而不是交替使用
out
和err
。为什么是这样? 最佳答案
它们是不同的流,并在不同的时间被冲洗。
如果你把
System.out.flush();
System.err.flush();
在您的循环中,它将按预期工作。
为了明确起见,将对输出流进行缓存,以便所有写入都进入此内存缓冲区。经过一段时间的安静后,它们实际上被写了出来。
您写入两个缓冲区,然后在一段时间不活动之后将它们都刷新(一个接一个)。
关于java - System.out.println和System.err.println出现故障,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31118733/