有几种方法。
让作者
Lock
在尚未写入的区域上获得排他性。写完所有内容后,释放锁。这与该系统上运行的所有其他应用程序兼容,但是除非您将读取器与其他方法之一结合使用,否则它要求读取器足够聪明以重试失败的读取使用另一个通信通道,例如管道或套接字或文件的元数据通道,以使作者可以将完成的写入告知读者。
在文件中的某个位置写一个特殊的标记(作为协议的一部分),以说明所写的数据,例如
MappedByteBuffer bb; … // write your data bb.force();// ensure completion of all writes bb.put(specialPosition, specialMarkerValue); bb.force();// ensure visibility of the marker



