在二进制文件中标记数据块

时间:2017-06-22 20:26:00

标签: java c# binaryfiles

我正在为一个应用程序编写保存逻辑,其中一部分将保存一个动态列表" chunks"数据到单个文件。其中一些块可能是由插件提供的(其中包含逻辑来读取它),所以我需要找到一种方法来正确地跳过无法识别的数据块,如果创建它的插件已被删除。

我目前的解决方案是在每个" chunk"之前写一个长度(int32)。所以,如果出现错误,读者可以跳过它并继续阅读下一个块。

但是,这需要在编写任何数据之前计算数据的长度,并且因为我们的系统有点动态并允许嵌套数据类型,所以我宁愿避免缓存的开销一切只是为了衡量它。

我正在考虑以某种方式使用文件标记 - 我可以扫描文件以查找分隔块的非常特定的字节序列。这可以写在每个块之后而不是之前。

我还没想到其他选择吗?我的目标是找到一种立即写入数据的方法,而无需缓存和测量数据。

0 个答案:

没有答案