J'utilise RandomAccessFile pour effectuer des écritures dans un fichier dans le cadre d'une transaction. Avant de valider ma transaction, je veux être absolument sûr que les données sont écrites sur le disque. Appeler le force(boolean)
sur le FileChannel
du RAF semble fournir cette garantie, mais est-ce que cela s'appelle implicitement quand je ferme le fichier, ou dois-je l'appeler manuellement?Est-ce que RandomAccessFile.close() appelle en interne FileChannel.force()?
En outre, quelqu'un a-t-il un aperçu de ce que fait effectivement force()
, et jusqu'où peut-on faire confiance? Est-il possible que le système d'exploitation peut signaler que les données ont été écrites sur le disque, alors qu'en fait il est toujours dans un cache quelque part? Dans quelle mesure cet OS/HDD/système de fichiers est-il dépendant?