我正在尝试使用MappedMemoryBuffer
来存储/删除文件中的部分字节。 Atm,我使用以下方法:我在缓冲区中有一个位置标记文件中的数据结尾(缓冲区比文件稍大,以适应附加)。每个数据块都是固定长度的,比方说200个字节。
我首先要关注的是“标记”文件的结尾。我可以看到两种方法:
这就是为什么我会更倾向于一个,除非有人知道更好的方法?
现在,虽然附加非常简单,但删除随机数据块并不是那么简单。我想做的是转移数据以覆盖已删除的消息。我只是将消息右侧的所有字节移动到它的开头。
一般来说,这是正确的策略,或者是否有人会对此概念提出其他建议或改进?
答案 0 :(得分:0)
您可以在FileChannel
(或File
或其他任何内容上使用自定义包装类,只要您知道它是您的文件)并使其提供映射,甚至自己编写映射。 / p>
在此课程中,跟踪大小。让它实现Closeable
。当你.close()
它时,取消映射所有内容并截断/扩展到适当的大小。