1

私はOutputStream、コンストラクターを介してオブジェクトを受け取り、それを使用してPrintStream次のようにオブジェクトを作成するクラスを見ています。

this.pout = new PrintStream(out);

次に、このクラスはpout、クラス実装のさまざまな場所で次のようにオブジェクトを使用します。

String string;
...
pout.print(string);
pout.flush();

ここでのPrintStreamの使用は無意味であり、これは同じ仕事をしただろうと言っているのは正しいですか?

this.out = out
...
out.print(string);
out.flush();

ここで、outはタイプOutputStreamです。

また、このクラスを使用して、ssh2接続でコマンドを書き出しています。次に、クラス実装InputStreamを使用して応答を読み戻します。との間で同期する舞台裏はありますかOutputStreamInputStreamまたは応答をポーリングする前に常にフラッシュを呼び出す必要がありますか?

4

3 に答える 3

4

2番目のスニペットは無効です。OutputStreamメソッドがありませんprint()

との間で同期する舞台裏はありますかOutputStreamInputStreamまたは応答をポーリングする前に常にフラッシュを呼び出す必要がありますか?

これは、使用している実際のストリームクラスの仕組みによって異なります。疑わしい場合は、を使用してflush()ください。

于 2012-12-03T15:51:28.173 に答える
1

print()はwrite()を呼び出しますが、発生する可能性のあるIOExceptionを非表示にします。System.outやSystem.errがPrintStreamであり、プログラムの呼び出し元がプログラムが走る。

于 2012-12-03T16:02:36.363 に答える
1

print...()のメソッドの明らかな欠如に加えてOutputStream、PrintStreamはIOException代わりにエラーフラグを抑制して設定します。

于 2012-12-03T16:03:43.167 に答える