• ベストアンサー

flush()メソッドについて・・・

APIにてflush()を調べたのですが、フラッシュするとしか書いていません。その「フラッシュする」とはどのようなことを意味しているのですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • hidebu-
  • ベストアンサー率53% (45/84)
回答No.2

こんにちわ。 flush()とはバッファにたまったものを出力するということです。 基本的にバッファをとったあと、明示的にオートフラッシュをfalseにしていなければ、ある程度バッファにデータが溜まった時点で自動的にflush()して出力します。 ソケット通信をしてデータをやり取りしてみればわかるとおもいますが、オートフラッシュが起動するまでのデータがたまらないと、いつまでもデータをバッファにためこんだままで次のデータがくるまで待機しつづけてスレッドをとめてしまうということがあります。 こういうときにflush()をつかってやれば、バッファのデータを出力し、スレッドの待機状態が終了して次の命令を実行していきます。 ファイルIO関係を扱うときはスレッドをとめてしまうっていうことはないとおもいますのでオートフラッシュをfalseにしていなければ特に意識することもないとおもいます。 (終端文字をうけとったときもflush()はよばれますし) でも、もしいきなりフリーズしてしまったりしたときは、上記の例をうたがってみてください。 flush()を挿入することですんなり動きだしたりします(笑)

taganyan
質問者

お礼

大変わかりやすかったです。ありがとうございました。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

「flush_output は、現在出力ストリームに溜っている情報をフラッシュする」のように使う。 「Flush」は水・液をどっと流すが原義。Stream=流れ・水からの連想もあるか?。 入出力バッファーなど、溜めこんだものを、一杯になったとき・あるいは溜めの中途でも、入りは最後のため打ちきって強制的に、何か処理(例えば印刷)して、バッファーは空にするイメージか。水洗便所のタンクにフラッシュバルブというのがあって、ノブを回すと、これが作動して、溜めた水がどっと流れることを思い出してください。カメラのフラシュバルブもどっとチャージした電気を放電するからか? http://alpha.c.oka-pu.ac.jp/~sugimoto/java/JDK111API/F.html の「Flush」に沢山○○クラスのメソッドとして載っています。

  • UKY
  • ベストアンサー率50% (604/1207)
回答No.1

どのクラスのflushメソッドなのか書かないと明確な回答は得られませんよ。 BufferedOutputStreamなどでは、flushメソッドはバッファされた内容を強制的に出力させるのに使われます。

taganyan
質問者

補足

申し訳ありません。Writerクラスです。 よろしくお願いします。

関連するQ&A

専門家に質問してみよう