バッファされたストリームを使用すると、たとえばFileOutputStream
となります。java IOストリームをフラッシュするとき何が起こるか
BufferedOutputStream bf = new BufferedOutputStream(new FileOutputStream(fileName));
1ストリームに32のバイトを書き込み、その後flush()
メソッドを呼び出すとしましょう。他のStackOverflowの回答によると、32バイトはOSメモリに渡されます。
これが本当であれば、OSに依存していないのでしょうか?例えばこれをWindows上で実行している場合は、ファイルデータを管理するためのシステムキャッシュもあります。 OSがファイルにそのデータをフラッシュするのを待つ必要があるのではないでしょうか。それはそれらの32バイトが実際にディスクに書き込まれる点です。または、私はここで間違っていますか?
ahaなので、flushを呼び出すと、データがOSメモリに書き込まれ、このデータをディスクに書き込むようにOSに通知されますか? –
'起こっていることのすべての部分は、 'write()'で分かりますか? – EJP
私はこの質問を言い換えて、Javaで何を書いているのですか? JVMのメモリ空間から直接ディスクに書き込むか?つまり、JVMはディスクへの書き込みを行いますか? –