zlib、gzip、zip这三个概念的确比较容易混淆:

1.  gzip

gzip是UNIX下的一种数据格式。

gzip是在zlib之上,包了一层,在头和尾添加了一些额外的信息。

gzip- tar.gz。

gzip是一种文件压缩工具(或该压缩工具产生的压缩文件格式),它的设计目标是处理单个

的文件。gzip在压缩文件中的数据时使用的就是zlib。为了保存与文件属性有关的信息,gz

ip需要在压缩文件(*.gz)中保存更多的头信息内容,而zlib不用考虑这一点。但gzip只适

用于单个文件,所以我们在UNIX/Linux上经常看到的压缩包后缀都是*.tar.gz或*.tgz,也

就是先用tar把多个文件打包成单个文件,再用gzip压缩的结果。

2. zlib

zlib是一个开源库,提供了在内存中压缩和解压的函数。

zlib它的设计目标是处理单纯的数据(而不管数据的来源是什么)。

3. zip

zip只是一种数据结构,跟rar同级别的。

zip是适用于压缩多个文件的格式(相应的工具有PkZip和WinZip等),因此,zip文件还要

进一步包含文件目录结构的信息,比gzip的头信息更多。但需要注意,zip格式可采用多种

压缩算法,我们常见的zip文件大多不是用zlib的算法压缩的,其压缩数据的格式与gzip大

不一样。

Java SDK提供了对上述三种压缩技术的支持:Inflater类和Deflater类直接用zlib库对数据压缩/

解压缩,GZIPInputStream类和GZIPOutputStream类提供了对gzip格式的支持,ZipFile、Zi

pInputStream、ZipOutputStream则用于处理zip格式的文件。

所以,你应当根据你的具体需求,选择不同的压缩技术:如果只需要压缩/解压缩数据,你

可以直接用zlib实现,如果需要生成gzip格式的文件或解压其他工具的压缩结果,你就必须

用gzip或zip等相关的类来处理了。

下面是我的程序,把一个文件夹下的文件先打包成一个tar文件,然后再用gzip压缩。

/** * 压缩文件成Gzip格式,Linux上可使用 * 压缩文件夹生成后缀名为".gz"的文件并下载 * @param folderPath,要压缩的文件夹的路径 * @param zipFilePath,压缩后文件的路径 * @param zipFileName,压缩后文件的名称 * @throws BizException * */ public static void CompressedFiles_Gzip(String folderPath, String targzipFilePath, String targzipFileName) { File srcPath =new File(folderPath); int length=srcPath.listFiles().length; byte[] buf = new byte[1024]; //设定读入缓冲区尺寸 File[] files = srcPath.listFiles(); try { //建立压缩文件输出流 FileOutputStream fout=new FileOutputStream(targzipFilePath); //建立tar压缩输出流 TarOutputStream tout=new TarOutputStream(fout); for(int i=0;i

android zlib 和zip,gzip zip 和zlib相关推荐

  1. gzip zip 和zlib

    zlib.gzip.zip这三个概念的确比较容易混淆: 1.  gzip gzip是UNIX下的一种数据格式. gzip是在zlib之上,包了一层,在头和尾添加了一些额外的信息. gzip- tar. ...

  2. Linux C语言 Zlib 实现解压zip文件

    Linux C语言 Zlib 实现解压zip文件 因为在做嵌入式Linux,做OTA功能的时候需要解压zip升级包.所以需要用到zip文件的解压缩功能. 就想着能不能用zlib来完成这个功能.在网上一 ...

  3. android shell 解压zip,Android解压缩ZIP / GZIP数据(基于InflaterInputStream实现)

    在实际的项目代码使用过程中,发现如果用Java类库标准指定的GZIPInputStream读取压缩数据解压不能稳定工作,原因不明.反而使用InflaterInputStream可以替代GZIPInpu ...

  4. Node.js 使用 zlib 内置模块进行 gzip 压缩

    ?? NodeJS专栏:Node.js从入门到精通 ?? 博主的前端之路:前端之行,任重道远(来自大三学长的万字自述) ?? 加入社区领红包:(从前端到全栈) ???个人简介:即将大三的学生,一个不甘 ...

  5. Python将Pandas中Dataframe数据保存为gzip/zip文件:gzip压缩文件、zip压缩文件

    Python将Pandas中Dataframe数据保存为gzip/zip文件:gzip压缩文件.zip压缩文件 目录 Python将Pandas中Dataframe数据保存为gzip/zip文件:gz ...

  6. Linux中压缩、解压缩(tar/zip/bzip2/gz/gzip/zip)

    源码包一般都是以压缩形式存储的,所以,在获得软件包之后,要进行解压缩.  压缩包也有两种形式,一种是tar.gz包(.tgz包也是这种),一种是tar.bz2包.  tar.gz包的解压方法:tar ...

  7. Linux bzip2/gzip/zip/tar 命令详解

    Changelog 版本 时间 修订章节 1.0 2018-3-24 添加了关于xz的内容 Linux文件压缩工具 工具 文件扩展名 描述 bzip2 .bz2 采用 Burrows-Wheeler ...

  8. tar/gzip/zip文件打包、压缩命令

    一.tar打包备份工具 1.命令功能 tar 将多个文件或目录打包在一起,可用通过调用gzip或zip实现压缩.解压的命令:tar不仅可以多多个文件进行打包,还可以对多个文件打包后进行压缩. 2.语法 ...

  9. Python处理各种压缩文件(bzip2,gzip,zip)

    原文地址:Python处理各种压缩文件(bzip2,gzip,zip) Python中有一个gzip模块来处理gzip文件 读取gzip文件: 1 2 3 4 import gzip f = gzip ...

  10. linux tar zcxf,tar/gzip/zip文件打包、压缩命令

    一.tar打包备份工具 1.命令功能 tar 将多个文件或目录打包在一起,可用通过调用gzip或zip实现压缩.解压的命令:tar不仅可以多多个文件进行打包,还可以对多个文件打包后进行压缩. 2.语法 ...

最新文章

  1. vue 修改模板{{}}标签_详解Vue 动态添加模板的几种方法
  2. CG CTF WEB 密码重置
  3. Eclipse导入Tomcat源码
  4. Mysql的IF()函数:如果返回True值,返回第一个值,为False值,返回第二个值
  5. DevExpress v18.1新版亮点——WinForms篇(六)
  6. 【iOS开发】使用XCode 8进行真机调试的方法(各种报错信息的解决方法)
  7. vc++播放wav声音
  8. js前端可视化 | 向量叉乘
  9. 全国行政区划数据 - JSON
  10. 【STM32】红外对射计数器计数原理和代码
  11. 知识付费平台包括哪些功能版块?
  12. 使用photoshop画虚线框
  13. 在WIN7、WIN10操作系统用WebDAV映射网络驱动器需要的操作
  14. python前端学习之js
  15. 【数学建模】CUMCM-2013B 碎纸片的拼接复原 解题思路整理
  16. 理解 OpenStack + Ceph (3):Ceph RBD 接口和工具 [Ceph RBD API and Tools]
  17. Elsevier模板(1)
  18. #P07754. 加数
  19. qq怎么实现用链接跳转聊天记录页面
  20. Docker学习(06)——容器进入命令和拷贝命令

热门文章

  1. matlab调用函数画图,matlab画图之pcolor函数
  2. Linux----UnZip命令
  3. 想要写出漂亮文档,(表情图标)资源你值得收藏
  4. SLAB内存泄露分析实践
  5. [机器学习入门] 经典台大李宏毅机器学习课程从这里开始
  6. Hadoop各组件详解
  7. Unity 脚本生成瓦片地图TileMap
  8. 从 GitHub 上手动安装python包教程
  9. 知乎每日精选python阅读脚本
  10. xshell评估过期解决办法