atitit.压缩算法 ZLib ,gzip ,zip 最佳实践 java .net php
Posted cxchanpin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了atitit.压缩算法 ZLib ,gzip ,zip 最佳实践 java .net php相关的知识,希望对你有一定的参考价值。
atitit.压缩算法 ZLib ,gzip ,zip 最佳实践 java .net php
5. java jdk 给zlib,gzip,zip的支持 2
1. 压缩算法的归类::: 纯算法,带归档算法
ZIP、RAR等归档算法
ZLib能够简单的理解为压缩/解压缩算法,它与ZIP、RAR等归档算法有所不同,
2. zlib(适合字符串压缩)
zlib是一个通用的压缩开源库。提供了在内存中压缩和解压的函数,包含对解压后数据的校验。眼下版本号的zlib仅仅支持deflate方法, 它的设计目标是处理单纯的数据(而无论数据的来源是什么)
作者::老哇的爪子Attilax艾龙,EMAIL:[email protected]
转载请注明来源: http://blog.csdn.net/attilax
3. gzip( 适合单个的文件)
gzip也是一种数据压缩格式,能够大体分为头部,数据部和尾部三个部分,当中头部和尾部主要是一些文档属性和校验信息(rfc1952)。数据部主要是用deflate方法压缩得到的数据。
gzip是一种文件压缩工具(或该压缩工具产生的压缩文件格式),它的设计目标是处理单个的文件。gzip在压缩文件里的数据时使用的就是zlib。为了 保存与文件属性有关的信息。gzip须要在压缩文件(*.gz)中保存很多其它的头信息内容。而zlib不用考虑这一点。但gzip仅仅适用于单个文件,所以我 们在UNIX/Linux上常常看到的压缩包后缀都是*.tar.gz或*.tgz。也就是先用tar把多个文件打包成单个文件。再用gzip压缩的结 果。
4. zip
zip是适用于压缩多个文件的格式(对应的工具有PkZip和WinZip等),因此,zip文件还要进一步包括文件文件夹结构的信息,比gzip的头信息 很多其它。但须要注意,zip格式可採用多种压缩算法,我们常见的zip文件大多不是用zlib的算法压缩的。其压缩数据的格式与gzip大不一样。
5. java jdk 给zlib,gzip,zip的支持
Java SDK提供了对上述三种压缩技术的支持:Inflater类和Deflater类直接用zlib库对数据压缩/解压缩,GZIPInputStream类 和GZIPOutputStream类提供了对gzip格式的支持,ZipFile、ZipInputStream、ZipOutputStream则用 于处理zip格式的文件
6. zlib---gzip 压缩在后长度比較
gzip>>>zlib
244>>>214
7. 别的bzip,,tar
GZIP是JDK自带的算法实现,但BZip2则不曾享受这个待遇。
只是。强大的Apache坚决不会让这些个在Linux下如鱼得水的算法在Java世界中销声匿迹。
Apache在Commons Compress中提供了对应的实现。
同一时候,还包含众所周知的tar、cpio、zip等算法实现。当中最为丰富的当属zip
在linux下,tar是一个归档命令。当然,假设配合gzip、bzip2就能够达到归档+压缩的效果!
我们通过tar获得归档压缩文件事实上恰恰包括了归档和压缩两个操作。而且其操作次序也是先做归档操作。再做压缩操作! 通常我们忽略了归档的概念。将归档压缩文件简称为压缩文件。~
Java压缩技术(七) TAR——Commons实现
8. 參考
Java压缩技术(七) TAR——Commons实现 - Snowolf的意境空间! - ITeye技术站点.htm
有关压缩的一些东西 - wyingquan的专栏 - 博客频道 - CSDN.NET.htm
以上是关于atitit.压缩算法 ZLib ,gzip ,zip 最佳实践 java .net php的主要内容,如果未能解决你的问题,请参考以下文章