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()
?