我一直在使用 a RandomAccessFile
to rw数据。文件的大小可以从 5MB 到 200MB。该文件用作循环缓冲区。
我主要关心的是在读写之前不断寻找。
寻找之后会发生什么?部分文件数据是否立即缓冲到内存中?搜索后它甚至会做任何事情吗?
我想了解它是如何工作的,以及如何提高RandomAccessFile
在不同位置使用 读写的性能。我只是觉得不断的寻找可能使用了太多的资源?
避免不断寻找的可能解决方案?
- 实例化两个
RandomAccessFile
实例,一个用于读取,另一个用于写入。当然,这些将紧密同步。 - 使用两个
FileChannels
. 当我需要读取缓冲区的尾部或缓冲区的头部时,甚至不确定如何防止指针移动。