RandomAccessFileを使用して、トランザクションの一部としてファイルへの書き込みを実行しています。トランザクションをコミットする前に、データがディスクに書き込まれていることを確かめたいと思います。 RAFのFileChannel
にforce(boolean)
を呼び出すと、この保証が得られますが、ファイルを閉じると暗黙的に呼び出されるのですか、それとも手動で呼び出す必要がありますか?RandomAccessFile.close()は内部的にFileChannel.force()を呼び出しますか?
また、force()
が実際に何を信用しているかについての洞察はありますか?実際にはどこかのキャッシュにまだ座っているときに、OSがデータがディスクに書き込まれたと報告する可能性はありますか?このOS/HDD /ファイルシステムはどの程度まで依存していますか?