这可能属于“不太可行”或“不值得付出努力”的范畴,但在这里。
我正在尝试随机访问存储在多部分 gzip 文件中的记录。具体来说,我感兴趣的文件是压缩的Heretrix Arc 文件。(如果您不熟悉多部分 gzip 文件,gzip 规范允许将多个 gzip 流连接到一个 gzip 文件中。它们不共享任何字典信息,它是简单的二进制附加。)
我认为应该可以通过在文件中寻找某个偏移量来做到这一点,然后扫描 gzip 魔术头字节(即 0x1f8b,根据RFC),并尝试从以下字节读取 gzip 流. 这种方法的问题在于,这些相同的字节也可能出现在实际数据中,因此寻找这些字节可能会导致开始读取 gzip 流的位置无效。鉴于记录偏移量不是先验已知的,是否有更好的方法来处理随机访问?