问题
I just discovered that with NIO.2, at least under Linux, I can open a FileChannel
on a directory, and calling force(true) calls fsync()
on the underlying file descriptor. Without getting into whether this should be necessary, it's nice to finally have this functionality available in pure Java.
I haven't been able to find anywhere that this behaviour is documented, though. Can I count on this working on all Unix platforms, in future versions of Java, and in non-Oracle JVMs?
回答1:
See the following thread: http://mail.openjdk.java.net/pipermail/nio-dev/2015-May/003140.html
It was not technically supported, but looks like support will be retained as many applications rely on it.
回答2:
You can count on whatever the documentation says, and on nothing else.
来源:https://stackoverflow.com/questions/7694307/using-filechannel-to-fsync-a-directory-with-nio-2