FileDescriptor.sync() 是否适用于所有文件数据或仅适用于调用方 JVM 中的文件数据
Does FileDescriptor.sync() work for all file data or just file data originating within the callers JVM
这会确保所有数据都在本地计算机上同步,还是仅同步来自当前运行的 JVM 中的数据?
FileOutputStream s = new FileOutputStream(filename)
s.getFD().sync()
FileInputStream fis = new FileInputStream(null);
fis.getFD().sync();
上下文:我们有许多程序(其他软件)写入我们共享的文件。我们都在使用它时锁定它,然后解锁它,...但是我们发现 OS 没有完全同步到文件存储(网络驱动器),即使每个人都完成了他们的文件。
即使在获得锁之后,OS 似乎也没有与文件同步,并且最后的一些数据还没有写入。
Does FileDescriptor.sync() work for all file data
没有
or just file data originating within the callers JVM
它仅适用于当前文件描述符,它必须在调用者的 JVM 中,连同他正在写入的数据。
这会确保所有数据都在本地计算机上同步,还是仅同步来自当前运行的 JVM 中的数据?
FileOutputStream s = new FileOutputStream(filename)
s.getFD().sync()
FileInputStream fis = new FileInputStream(null);
fis.getFD().sync();
上下文:我们有许多程序(其他软件)写入我们共享的文件。我们都在使用它时锁定它,然后解锁它,...但是我们发现 OS 没有完全同步到文件存储(网络驱动器),即使每个人都完成了他们的文件。
即使在获得锁之后,OS 似乎也没有与文件同步,并且最后的一些数据还没有写入。
Does FileDescriptor.sync() work for all file data
没有
or just file data originating within the callers JVM
它仅适用于当前文件描述符,它必须在调用者的 JVM 中,连同他正在写入的数据。