Java RandomAccessFile#close()是否将写入的数据同步到磁盘?

Java RandomAccessFile#close()是否将写入的数据同步到磁盘?,java,randomaccessfile,Java,Randomaccessfile,我只是顺便来看了一位关于这个问题的朋友 我喜欢的时候说。(请注意,我使用的是“rw”而不是“rws”或“rwd”) try(RandomAccessFile原始=新的RandomAccessFile(文件,“rw”)){ //写一些 } RandomAccessFile#close()是否像我显式执行getFD().sync() try(RandomAccessFile原始=新的RandomAccessFile(文件,“rw”)){ //写一些 raw.getFD().sync(); } 我

我只是顺便来看了一位关于这个问题的朋友

我喜欢的时候说。(请注意,我使用的是
“rw”
而不是
“rws”
“rwd”

try(RandomAccessFile原始=新的RandomAccessFile(文件,“rw”)){
//写一些
}
RandomAccessFile#close()
是否像我显式执行
getFD().sync()

try(RandomAccessFile原始=新的RandomAccessFile(文件,“rw”)){
//写一些
raw.getFD().sync();
}
我搜索了
RandomAccessFile.java
,源代码就是这样做的

public void close()引发IOException{
//在这里,一切看起来都无关紧要
close0();
}
私有本机void close0()引发IOException;

是和否。最终数据将进入磁盘。但不,绝对不能保证什么时候会发生这种情况。当close返回时不会,甚至当JVM退出时也不会。但几乎可以肯定的是,大多数情况下,关闭后不久就被称为“JamesKPolk有趣”。这一事实是否应该让我显式地调用
getFD().sync()
?是和否。最终数据将到达磁盘。但不,绝对不能保证什么时候会发生这种情况。当close返回时不会,甚至当JVM退出时也不会。但几乎可以肯定的是,大多数情况下,关闭后不久就被称为“JamesKPolk有趣”。这个事实是否应该让我显式地调用
getFD().sync()