fsync(2) 手册页告诉同步目录是否明确需要同步文件。
io包中Java的sync方法怎么样?有没有在意?它是否取决于操作系统和/或文件系统?
我在http://docs.oracle.com/javase/7/docs/api/java/io/FileDescriptor.html#sync中发现没有任何帮助...
fsync(2) 手册页告诉同步目录是否明确需要同步文件。
io包中Java的sync方法怎么样?有没有在意?它是否取决于操作系统和/或文件系统?
我在http://docs.oracle.com/javase/7/docs/api/java/io/FileDescriptor.html#sync中发现没有任何帮助...
fsync手册页指出,调用文件fsync并不意味着关联的目录也将被 fsync。如果需要,fsync必须为目录调用。
我可以看到该定义/行为的几个充分理由:
顺便说一句,让我们看看 Java 的定义/行为。
JavaDoc 没有提及与目录等相关文件系统对象有关的任何内容。此外,我看不到获取FileDescriptor目录实例的方法。
根据其源代码查看 OpenJDK 实现的行为,只需在 UNIX 和Windows上java.io.FileDescriptor.sync()触发。fsyncFlushFileBuffers
所以,不,java.io.FileDescriptor.sync()不会以任何方式影响关联的目录。