找到放气的数据块的大小

时间:2016-01-21 21:05:19

标签: parsing deflate

假设我有一大堆缩小的数据(如前两个字节后面的compressed data和zlib压缩文件中的ADLER32检查之前)

我怎么知道那个大块的长度?我怎样才能找到它的结束位置?

2 个答案:

答案 0 :(得分:0)

您需要从zlib块外部的某些元数据中获取该信息。 (对于未压缩的大小也是如此。)或者您可以解压缩并查看最终结果。

deflate格式的压缩块是自定界的,因此解码器将在正确的点终止(除非数据流已损坏)。

包含压缩数据的大多数文件存储和数据传输格式都可以使用此元数据。但由于没有必要进行解压缩,因此不会将其存储在压缩流中。

答案 1 :(得分:0)

找到它结束的唯一方法是解压缩它。放气流是自我终止的。