アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (3件)

こんにちわ。



flush()とはバッファにたまったものを出力するということです。
基本的にバッファをとったあと、明示的にオートフラッシュをfalseにしていなければ、ある程度バッファにデータが溜まった時点で自動的にflush()して出力します。

ソケット通信をしてデータをやり取りしてみればわかるとおもいますが、オートフラッシュが起動するまでのデータがたまらないと、いつまでもデータをバッファにためこんだままで次のデータがくるまで待機しつづけてスレッドをとめてしまうということがあります。
こういうときにflush()をつかってやれば、バッファのデータを出力し、スレッドの待機状態が終了して次の命令を実行していきます。

ファイルIO関係を扱うときはスレッドをとめてしまうっていうことはないとおもいますのでオートフラッシュをfalseにしていなければ特に意識することもないとおもいます。
(終端文字をうけとったときもflush()はよばれますし)

でも、もしいきなりフリーズしてしまったりしたときは、上記の例をうたがってみてください。
flush()を挿入することですんなり動きだしたりします(笑)
    • good
    • 0
この回答へのお礼

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

お礼日時:2002/07/19 09:18

「flush_output は、現在出力ストリームに溜っている情報をフラッシュする」のように使う。

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

どのクラスのflushメソッドなのか書かないと明確な回答は得られませんよ。



BufferedOutputStreamなどでは、flushメソッドはバッファされた内容を強制的に出力させるのに使われます。

この回答への補足

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

補足日時:2002/07/18 15:03
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


このQ&Aを見た人がよく見るQ&A