2016-09-22 3 views
0

JAVAで次のprint文を実行しようとしましたが、出力は予期しないものです。出力が混乱します。JavaでSystem.err.println()を使用したときに予期せぬ出力が発生しました

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 

3回目の出力:

1 
Error 
2 
3 
4 
5 
6 
7 
8 
9 
10 

私は同じコードの異なる出力を取得していますなぜ?? ありがとう

+0

これは、 'System.out.println()'がバッファされ、 'System.err.println()'がバッファされていないためです。 – DimaSan

答えて

1

これらは異なるストリームであり、異なる時間にフラッシュされます。

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

あなたは彼らが異なるストリームであり、異なる時間にフラッシュされ、このStack-question

+0

ありがとう、私もこのリンクを持っています –

+0

私はちょうどあなたに答えのリンクを与えます:-) – unknownbits

1

からの助けを取ることができます。

あなたのコードの中に

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

を入れた場合は、予想通り、それは動作します。

関連する問題