我希望能够对gzip文件进行随机访问。 如果预处理的结果比文件本身小得多,我可以对它进行一些预处理(比如说构建某种索引)。随机访问gzip流
有什么建议吗?
我的想法是:
- 哈克在现有的gzip实现和序列化其解压缩器状态每一个,比方说,1兆字节的压缩数据。然后进行随机访问,反序列化解压缩器状态并从兆字节边界读取。这看起来很难,特别是因为我正在使用Java,而且我找不到纯java gzip实现:(
- 重新压缩1Mb块的文件并执行上述操作,这有两倍的缺点所需的磁盘空间
- 编写一个简单的gzip格式解析器,它不做任何解压缩,只检测和索引块边界(如果还有任何块:我还没有读取gzip格式描述)
谢谢,这太酷了!如果我只是找到了一种方法,可以从Java中舒适地使用它.. – jkff 2010-03-26 22:04:03
@jkff:如果您不需要跨平台部署,请查看JNA。作为一种调用C库的方式,这非常容易。 – 2010-03-27 01:23:36
再次感谢,我这样做,它就像一个魅力!雷克斯,也感谢你:我使用JNA :) – jkff 2010-03-27 18:41:35