我正在为一个应用程序编写保存逻辑,其中一部分将保存一个动态列表" chunks"数据到单个文件。其中一些块可能是由插件提供的(其中包含逻辑来读取它),所以我需要找到一种方法来正确地跳过无法识别的数据块,如果创建它的插件已被删除。
我目前的解决方案是在每个" chunk"之前写一个长度(int32)。所以,如果出现错误,读者可以跳过它并继续阅读下一个块。
但是,这需要在编写任何数据之前计算数据的长度,并且因为我们的系统有点动态并允许嵌套数据类型,所以我宁愿避免缓存的开销一切只是为了衡量它。
我正在考虑以某种方式使用文件标记 - 我可以扫描文件以查找分隔块的非常特定的字节序列。这可以写在每个块之后而不是之前。
我还没想到其他选择吗?我的目标是找到一种立即写入数据的方法,而无需缓存和测量数据。