GZIPOutputStream和DeflateErOutputStream有什么区别?
2022-09-02 21:14:45
GZIPOutputStream
只是 的子类,但两者都可以实例化。我什么时候使用一个而不是另一个?压缩是否相同?DeflaterOutputStream
GZIPOutputStream
只是 的子类,但两者都可以实例化。我什么时候使用一个而不是另一个?压缩是否相同?DeflaterOutputStream
DeflaterOutputStream、ZIPOutputStream 和 GZIPOutputStream 之间的差异反映了它们历史上的压缩前身之间的差异:
分别。Deflate可以被认为是压缩算法的参考实现,而ZIP和GZIP是它的“扩展”。后者都支持“存档”的概念,这在ZipOutputStream的Java API中更加明显。
如果您只是尝试压缩数据流,我建议您使用DefllaterOutputStream,但是如果您正在创建存档,则可能应该查看ZipOutputStream。
DeflaterOutputStream实现了原始放气压缩方法。GZIPOutputStream增加了GZIP所需的其他逻辑:CRC-32检查,GZIP幻数,GZIP标头,拖车等。请参阅 GZIPOutputStream.java 和 DeflaterOutputStream.java 的源代码。