3

私はこのコードを持っています:

 System.err.print("number of terms =   ");
 System.out.println(allTerms.size());
 System.err.print("number of documents =   ");
 System.out.print("number of documents =   ");

結果は次のようになるはずです。

number of terms = 10
number of documents =1000

しかし、結果は

10
1000
number of terms =   number of documents =

なぜ、そしてそれをどのように解決するのですか?

4

7 に答える 7

9

ストリームアウトとエラーは独立しています。

目的の出力を取得するには、ストリームをフラッシュするか、すべての出力に1つのストリームのみを使用する必要があります。

于 2012-05-07T19:23:01.067 に答える
3

それを解決するには

System.out.print("number of terms = ");

System.out.println(allTerms.size());

System.out.print("number of documents = ");

System.out.print("number of documents = ");

System.out.println->出力を標準出力ストリームに送信します。一般的に監視します。

System.err.println->出力を標準エラーストリームに送信します。一般的に監視します。

于 2012-05-07T19:22:21.323 に答える
3
System.out.print ("He");  
System.out.print ("llo ");  
System.out.println ("World");  

「Hello World」を出力することが保証されていますが、

System.out.print ("He");  
System.err.print ("llo ");  
System.out.println ("World");  

「llo He World」または「HeWorld llo」と表示される場合があります。それらは2つの異なるストリームです。

于 2012-05-07T19:32:03.120 に答える
2

System.err.print()コンソールに表示されない可能性のあるstderrに出力します。それらをに切り替えますSystem.out.print()

于 2012-05-07T19:22:31.353 に答える
2

System.err と System.ou は 2 つの異なるものです。System.out を使用すると、stderr に書き込む system.err を使用して stdout に書き込みます。

System.err を System.out に置き換えてみると、問題が解消されることがわかります。

次に、次を置き換える必要があります。

System.err.print("number of terms = ");

System.out.print("number of terms = ");

println の色を変更するには、その質問を確認してください: System.out.println 出力に色を付けるには?

于 2012-05-07T19:23:47.127 に答える
1

すべての print* ステートメントの後、それぞれのストリームのフラッシュ メソッドを使用します。それはあなたに望ましい出力を与えるかもしれません。

System.err.print("number of terms =   "); System.err.flush();  
System.out.println(allTerms.size()); System.out.flush();  
System.err.print("number of documents =   "); System.err.flush();  
System.out.print( numberOfDocuments ); System.out.flush();  

結果は次のとおりです。

number of terms =   10
number of documents =   1000

コンソール アプリを実行していることを願っており、予想どおりerr赤字で表示されます。

于 2012-05-07T19:41:25.667 に答える
0

これが理由である可能性があります。err両方outとも、コンソールへのアクセスを取得する順序に従って出力される異なる出力ストリームを持っています。

于 2012-05-09T04:55:06.080 に答える