【发布时间】:2011-11-24 21:32:57
【问题描述】:
我在 java 中使用 RandomAccessFile:
file = new RandomAccessFile(filename, "rw");
...
file.writeBytes(...);
如何确保将这些数据刷新到操作系统?没有 file.flush() 方法。 (请注意,我实际上并不期望它是物理写入的,我对它被刷新到操作系统感到满意,这样数据将在 tomcat 崩溃时幸存下来,但不一定是意外的服务器断电)。
我在 Linux 上使用 tomcat6。
【问题讨论】:
-
如何将
RandomAccessFile仅刷新到操作系统而不一定要刷新到物理磁盘? -
数据被写入磁盘缓存页面,因此其他进程立即可见,并且在写入数据但未写入磁盘的进程崩溃时也会幸免于难,因此会无法生存,例如突然断电。