したがって、BufferReaderの参照をしばらく保持していて、それがフラッシュされた場合、すべてのデータはどのように保持されますか?
私はあなたが意味すると思いますBufferedWriter
。(Reader
またはInputStream
APIのどちらにもflush()
メソッドはありません。フラッシュは「ソース」では意味がありません。)
フラッシュされたデータは、ストリームの「シンク」に書き込まれます。つまり、ファイルやソケットなどです。したがって、ファイル(またはその他)を見ると、ストリームが(正常に)フラッシュされていれば、データはそこにあります。
自動的にフラッシュしてコンテンツを再度読み取るコールバックメカニズムはありますか?
コールバックメカニズム1はありません。(少なくとも、標準クラスライブラリが提供するバッファリングされたストリームクラスのいずれにもありません:カスタムクラスが何をする可能性があるかを誰が知っていますか...)
特定のことが発生すると、データは自動的にフラッシュされます。たとえば、アプリケーションがprintln
PrintWriterに対して...を呼び出す場合。
...または、データが失われ、再度呼び出す必要がありますか?
これは、文法的にも意味的にも意味がありません。あなたが何を求めているのかわかりません。
おそらくあなたはフラッシングが何をするのか理解していないでしょう。フラッシュとは、単にデータをバッファからプッシュし、ストリームがデータを送信する場所にプッシュすることを意味します。明示的なflush()
呼び出しまたは自動フラッシュは、単に「今すぐ書き込む」ことを意味します。
1-ちなみに、方法もBufferedWriter
ありませんfinalize()
。これは、出力がバッファリングされている間にこれらのオブジェクトの1つに到達できなくなった場合、その出力が書き込まれることはないことを意味します。