[解決済み】JavaでSystem.out.flush()を呼び出すタイミングと理由
質問
なぜ特定のストリームをフラッシュする必要があるのでしょうか (
FileOutputStream
とソケットからのストリーム)、標準出力ストリームはそうではないのですか?
誰かが使うたびに
System.out
PrintStream
オブジェクトを呼び出しているときであろうと
println()
または
write()
そのため、ストリームをフラッシュすることはありません。 しかし、他のプログラマは習慣的に
flush()
a
PrintStream
/
PrintWriter
を他のストリームと組み合わせて使用することができます。
最近、何人かのプログラマーにこの質問をしたのですが、何人かは、Javaのバックグラウンドで
System.out
のストリームがありますが、それに関するドキュメントが見当たりません。
このようなことから、単純に
System.out.println()
はプラットフォームに依存しないので、システムによってはストリームのフラッシュが必要な場合があります。
どのように解決するのですか?
System.out
を中心にしたものです。
PrintStream
これは、デフォルトでは、改行が書き込まれるたびにフラッシュされます。
から ジャバドック :
autoFlush - boolean.もし true ならば,バイト配列が書き込まれるたびに,出力バッファがフラッシュされます.
println
メソッドが呼び出された場合、または改行文字やバイト('\n'
が書かれている
そのため
println
の場合、明示的に処理されます。
write
のあるケースは
byte[]
も、"everly byte array is written"に該当するため、フラッシュが保証されます。
もし
System.out
を使って
System.setOut
で、オートフラッシングストリームを使用しない場合、他のストリームと同様にフラッシュする必要があります。
ライブラリコードでは、おそらく
System.out
を直接使用することはできませんが、もし使用するのであれば、フラッシュするように注意する必要があります。
System.out
を使用して、フラッシュしないストリームを使用します。
にバイナリ出力を書き込むすべての Java プログラムは
System.out
に注意する必要があります。
flush
前に
exit
バイナリ出力には末尾の改行が含まれないことが多いからです。
関連
-
[解決済み】imageio.IIOException: 入力ファイルが読み込めない
-
[解決済み】 java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver [重複]。
-
[解決済み】接続Java - MySQL : 公開鍵の取得は許可されていません。
-
[解決済み] この2回(1927年)を引き算すると、なぜおかしな結果になるのでしょうか?
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] Java で、あるコンストラクタを別のコンストラクタから呼び出すにはどうすればよいですか?
-
[解決済み】なぜJavaの+=, -=, *=, /=複合代入演算子はキャスティングを必要としないのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】エラー:配列または java.lang.Iterable のインスタンスに対してのみ反復処理を行うことができます。
-
[解決済み】代入の左手は必ず変数 CharAt
-
[解決済み】エラー。Selection does not contain a main type
-
[解決済み】popBackStack()とreplace()の操作はどう違うのですか?
-
[解決済み] メソッドがスーパータイプのメソッドをオーバーライドまたは実装していない - Overrideの場合
-
[解決済み】「error: '.class' expected」の意味と修正方法について
-
[解決済み】java 'jar'が内部コマンドまたは外部コマンドとして認識されない。
-
[解決済み】Javaを包含するクラスではないのか?
-
[解決済み】Eclipseで「JUnitテストが見つかりませんでした。
-
[解決済み] エラー - trustAnchors パラメータは空であってはなりません。