我有一堆不同的对象(和objec类型),我想写入二进制文件。首先,我需要将文件结构如下:
`对象类型1
obj1, obj2 ...
对象类型2
obj1, obj2...
...
作为一个二进制文件,这对用户没有帮助,但我希望有一个结构,所以我可以按类型搜索,删除或添加对象,而不是解析整个文件。这是我不知道该怎么做的事情。这甚至可以吗?
答案 0 :(得分:1)
您必须在文件的开头(或其他位置)维护标题,以标记每个对象的位置和长度。
标题的种类和布局很大程度上取决于您计划如何读取和写入文件。例如,如果您计划按名称检索对象,则可以在文件中添加类似
的文件object1 500 1050
object2 1550 800
object3 2350 2000
<some padding to cover 500 bytes>
<the 1050 bytes of object1><the 800 bytes of object2><the 2000 bytes of object3>
并且知道object1
从文件中的偏移量400开始,并且长度为1050字节。
由于您似乎要存储不同类型的对象,因此您可能需要向标头添加一些其他数据。
请注意以下事项:
我不知道任何可以帮助你实现这个功能的库,但我很确定有一些。也许有人可以推荐一个。
-
另一种解决方案是使用ZipFile(Java本身支持)之类的东西,并将每个对象写为differenz ZipEntry。这样您就不必自己管理对象分离,只需要担心知道所需的ZipEntry。