对于存储为 .gz 文件的图像(我的图像处理软件可以读取 .gz 文件以获得更短/更小的磁盘时间/空间),我需要检查每个文件的标题。
标头只是每个图像开头的固定大小的小结构,对于未压缩的图像,检查它非常快。为了读取压缩图像,我别无选择,只能解压缩整个文件,然后检查这个标题,这当然会减慢我的程序。
是否可以读取 .gz 文件的第一段(比如几个 K),解压缩该段并读取原始内容?我对gz的理解是,在开始记账之后,压缩数据是按顺序存储的——对吗?
所以不是
1. 打开大文件F
2. 解压大文件F
3. 读取 500 字节的头文件
4. 重新压缩大文件F
做
1. 打开大文件F
2. 从流中读取前 5 K
3.作为F
流解压缩
4. 从中读取 500 字节的标头A
A
B
B
我正在使用libz.so
,但其他语言的解决方案表示赞赏!