標準出力ストリームではないのに、特定のストリームをフラッシュする必要があります(FileOutputStream
およびソケットからのストリーム)。JavaでSystem.out.flush()を呼び出す理由/理由
誰かがprintln()
またはwrite()
を呼び出しながらも、System.out
PrintStream
オブジェクトを使用するたびに、彼らは、ストリームをフラッシュすることはありません。しかし、他のプログラマは、とPrintStream
/PrintWriter
を他のストリームと常時呼びます。
私は最近いくつかのプログラマーにこの質問をしましたが、いくつかのバックグラウンド処理ではSystem.out
ストリームを自動フラッシュするJavaがあると信じていますが、それに関するドキュメントは見つかりません。
このようなことは、一部のシステムでストリームをフラッシュする必要がある場合があるため、単にSystem.out.println()
をプラットフォームに依存しないと思うのですか?
「真ならば」有効ですが、それは? System.outのautoFlushの値についてのドキュメントは見つかりませんでした。 –
@Carlos、JVMをブートストラップし、 'System.out'と' System.err'となるメインクラスを起動するシステムまでです縛られ、どのようにそれらがフラッシュする。 'java'バイナリを使ってクラス' System.out'を起動すると、 'new PrintStream(new FileOutputStream(FileDescriptor.out)、true、System.getProperty(" file.encoding "))'のように初期化されます。 JVMは異なります。明らかに、アプレットを埋め込んでいるJVMは、何か違うことをしています。 –
@MikeSamuel、それで、自動フラッシュの動作が**仕様によって**保証されていないので、私はまだ*フラッシュする必要があることを意味しますか? – Pacerier