我试图使用MappedMemoryBuffer从文件中存储/删除部分字节。Atm,我使用以下方法:我在缓冲区中有一个位置,标记文件中数据的结尾(缓冲区比文件稍大一些,以便于附加)。每个数据块都是固定长度的,比如说200个字节。
我首先关心的是“标记”文件的结尾。我可以看到这方面的两种方法:
这就是为什么我会更倾向于一个,除非有人知道更好的方法?
现在,虽然附加非常简单,但删除随机数据块并不那么简单。我想做的是改变数据以覆盖已删除的消息。我只是把所有的字节移到消息的右边,到它的开头。
一般说来,这是正确的策略吗,还是有人会对这一概念提出其他建议或改进?
发布于 2014-03-04 11:56:14
您可以在FileChannel (或File或其他什么地方,只要您知道它是您的文件)上使用自定义包装类,并使它提供映射,甚至自己编写映射。
在这个类中,跟踪大小。让它实现Closeable。当您对其进行.close()时,取消映射所有内容并将其截断/展开到适当的大小。
https://stackoverflow.com/questions/22170740
复制相似问题