RandomAccessFile을 사용하여 파일의 일부 쓰기 작업을 트랜잭션의 일부로 수행하고 있습니다. 트랜잭션을 커밋하기 전에 데이터가 디스크에 쓰여지는 것을 확실히하고 싶습니다. RAF의 FileChannel
에 force(boolean)
을 호출하면이 보증이 제공되지만 파일을 닫을 때 암시 적으로 호출되거나 수동으로 호출해야합니까?RandomAccessFile.close()는 내부적으로 FileChannel.force()를 호출합니까?
또한 누구나 force()
이 실제로하는 일에 대한 통찰력을 갖고 있으며 신뢰할 수있는 정도는 무엇입니까? 사실 운영 체제가 데이터가 디스크에 기록되었다고보고 할 수 있습니까? 실제로 어딘가에 여전히 일부 캐시에 앉아있을 수 있습니까? 이 OS/HDD/파일 시스템에 어느 정도 영향을 줍니까?