Ich verwende RandomAccessFile, um einige Schreibvorgänge in eine Datei als Teil einer Transaktion durchzuführen. Bevor ich meine Transaktion festlege, möchte ich absolut sicher sein, dass die Daten auf die Festplatte geschrieben werden. Aufruf force(boolean)
auf der RAF FileChannel
scheint diese Garantie zu bieten, aber wird es implizit aufgerufen, wenn ich die Datei schließe, oder muss ich es manuell aufrufen?Ruft RandomAccessFile.close() intern FileChannel.force() auf?
Hat auch jemand Einblick in was force()
tatsächlich tut, und wie weit es vertraut werden kann? Ist es möglich, dass das Betriebssystem meldet, dass die Daten auf die Festplatte geschrieben wurden, obwohl es tatsächlich noch irgendwo in einem Cache sitzt? Inwiefern ist das OS/HDD/Dateisystem abhängig?