zoukankan      html  css  js  c++  java
  • atitit.压缩算法 ZLib ,gzip ,zip 最佳实践 java .net php

    atitit.压缩算法 ZLib ,gzip ,zip   最佳实践  java .net php

    1. 压缩算法的归类::: 纯算法,归档算法 1

    2. zlib(适合字符串压缩) 1

    3. gzip( 适合单个的文件) 1

    4. zip 2

    5. java jdk zlib,gzip,zip的支持 2

    6. zlib---gzip 压缩在后长度比較 2

    7. 别的bzip,,tar 2

    8. 參考 3

    1. 压缩算法的归类::: 纯算法,归档算法

    ZIP、RAR等归档算法

    ZLib能够简单的理解为压缩/解压缩算法,它与ZIP、RAR等归档算法有所不同, 

    2. zlib(适合字符串压缩)

    zlib是一个通用的压缩开源库。提供了在内存中压缩和解压的函数,包含对解压后数据的校验。眼下版本号的zlib仅仅支持deflate方法,    它的设计目标是处理单纯的数据(而无论数据的来源是什么)

    作者::老哇的爪子Attilax艾龙,EMAIL:1466519819@qq.com

    转载请注明来源: 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

    我要啦免费统计
  • 相关阅读:
    Java字符串跟ASCII码互转
    java 一款可以与ssm框架完美整合的web报表控件
    使用<c:set>标签配置项目路径
    Linux下部署tomcat及tomcat war包应用程序
    支付宝app支付服务端流程
    文本数据增量导入到mysql
    java 读取mysql中数据 并取出
    实现读取文本数据,在将数据导入mysql
    给一个整形数组,给出一个值,当这个值是数组某些数字的和,求出数组下标的值
    文本数据和mysql 里面的数据比较
  • 原文地址:https://www.cnblogs.com/cxchanpin/p/7010329.html
Copyright © 2011-2022 走看看