在java中使用System.err.println()的意外输出

时间:2016-09-22 13:31:44

标签: java

我尝试在JAVA中执行以下print语句,但是我得到的输出是意外的。输出混乱。

public class AsyncTestClass {
public static void main(String[] args) {

    System.out.println("1");
    System.out.println("2");
    System.out.println("3");
    System.out.println("4");
    System.out.println("5");
    System.err.println("Error");
    System.out.println("6");
    System.out.println("7");
    System.out.println("8");
    System.out.println("9");
    System.out.println("10");       
   }
 }

首先运行输出:

1
Error
2
3
4
5
6
7
8
9
10

第二次运行输出:

     1
2
3
4
5
Error
6
7
8
9
10

第三次输出:

    1
Error
2
3
4
5
6
7
8
9
10

为什么我为相同的代码获取不同的输出? 谢谢

2 个答案:

答案 0 :(得分:1)

他们是不同的流,他们在不同的时间刷新。

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

您可以从此Stack-question

获取帮助

答案 1 :(得分:1)

它们是不同的流,并在不同的时间刷新。

如果你把

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

在您的代码中,它将按预期工作。