GZIPOutputStream和DeflaterOutputStream有什么区别?

Joh*_*nch 18 java gzipoutputstream

GZIPOutputStream只是一个子类,DeflaterOutputStream但都可以实例化.我何时使用一个而不是另一个?压缩是一样的吗?

Per*_*ion 19

之间的差异DeflaterOutputStream,ZIPOutputStreamGZIPOutputStream反映其历史压缩的前辈之间的区别:

分别.Deflate可以被认为是压缩算法的参考实现,而ZIP和GZIP是它的"扩展".后者都支持"归档"的概念,这在ZipOutputStream的Java API中更为明显.

如果您只是尝试压缩数据流,我建议使用DeflaterOutputStream,但如果您要创建存档,则应该查看ZipOutputStream.


g05*_*051 5

DeflaterOutputStream实现原始的deflate压缩方法。GZIPOutputStream添加了GZIP所需的其他逻辑:CRC-32检查,GZIP幻数,GZIP标头,尾部等。请参见GZIPOutputStream.javaDeflaterOutputStream.java的源代码。