0

我正在尝试在 Java 和 CLI gzip 命令上比较通过 GZIP 运行字符串的输出。输出不一样,我已经弄清楚原因,但不知道如何让它们相互配合。

我已经阅读了一些关于 SO 的问题,阅读了 gzip 的手册页,以及 GZIPOutputStream 和 DeflaterOutputStream 的代码。GZIPOutputStream(通过 Deflator 设置)的默认压缩级别是“-1”,几乎没有解释这意味着什么。此外,gzip CLI 只允许 1 到 9 之间的值,包括 1 和 9。

那么有没有办法可以更改 Java 或 gzip 命令中的压缩设置以使它们产生相同的输出?

4

1 回答 1

2

不,Java 使用的是 zlib 压缩器,它源自旧的 gzip 命令行实用程序压缩器,但并不完全相同。它们通常不会产生相同的输出,并且没有设置强制它们这样做。

压缩级别-1请求默认的压缩级别,在当前的 zlib 实现中是 level 6

我不得不问你为什么要让他们的输出相同。重要的是压缩是无损的,即 gzip 和 Java 压缩流在解压缩时产生相同的原始数据。例如,不要求不同版本的 zlib 在相同的压缩级别下产生相同的输出。

于 2014-02-28T15:45:40.863 回答