【发布时间】:2010-03-26 21:39:33
【问题描述】:
我希望能够对 gzip 压缩文件进行随机访问。 只要预处理的结果比文件本身小得多,我就可以对其进行一些预处理(例如,构建某种索引)。
有什么建议吗?
我的想法是:
- 破解现有的 gzip 实现并序列化其解压缩器状态,例如,每 1 兆字节的压缩数据。然后进行随机访问,反序列化解压缩器状态并从兆字节边界读取。这似乎很难,特别是因为我正在使用 Java,但我找不到纯 Java gzip 实现:(
- 以 1Mb 的块重新压缩文件并执行与上述相同的操作。这样做的缺点是需要的磁盘空间增加了一倍。
- 编写一个简单的 gzip 格式解析器,它不进行任何解压缩,只检测和索引块边界(如果甚至有任何块:我还没有阅读 gzip 格式说明)
【问题讨论】:
标签: language-agnostic compression gzip large-files random-access