【发布时间】:2014-02-28 14:29:43
【问题描述】:
我正在尝试比较在 Java 和 CLI gzip 命令上通过 GZIP 运行字符串的输出。输出不一样,我已经弄清楚原因,但不知道如何让它们相互配合。
我已经阅读了一些关于 SO 的问题,阅读了 gzip 的手册页以及 GZIPOutputStream 和 DeflaterOutputStream 的代码。 GZIPOutputStream(通过 Deflator 设置)的默认压缩级别是“-1”,几乎没有解释这意味着什么。此外,gzip CLI 只允许 1 到 9 之间的值,包括 1 和 9。
那么有没有一种方法可以更改 Java 或 gzip 命令中的压缩设置以使它们产生相同的输出?
【问题讨论】:
-
您是否尝试过从 Java 中的默认压缩级别更改为像这样的另一个? OutputStream gzipout = new GZIPOutputStream(bos){{def.setLevel(Deflater.BEST_COMPRESSION);}};可能匹配 gzip --best (or -9)
-
@MarkSetchell 这是一个有趣的想法,但这将在构造函数完成它的其他操作之后设置级别,此时已经设置了默认压缩,写入标题等。
标签: java macos gzip gzipoutputstream