Java压缩类库的使用-1.总述

  inkfish原创,请勿商业性质转载,转载请注明来源(http://blog.csdn.net/inkfish)。

  压缩是编程中常见的技巧,多用于大文件压缩,数据流压缩等。在Java类库中,内置了jar、ZIP、GZIP、ZLIB等的支持(见java.util.zip、java.util.jar包)。另外在Apache项目下Ant中ant.jar的org.apache.tools.tar、org.apache.tools.zip、org.apache.tools.bzip2分别提供了tar、zip、bzip2的支持;Apache commons compress项目里提供了对AR、BZIP、CPIO、GZP、TAR、ZIP的支持。7-zip 提供了LZMA格式的压缩(public domain),QuickLZ 提供了quicklz格式的压缩(GPL),oberhumer.com 提供LZO格式的压缩(GPL),hadoop-gpl-compression 则对LZO的c实现用JNI进行包装,提供更快捷的LZO压缩。(来源:http://blog.csdn.net/inkfish)

  严格来说,TAR、AR、CPIO并不属于压缩软件,而是一种打包软件,它能把很多文件、文件夹打包成一个文件,供压缩程序压缩。而咱们在windows中熟悉的zip、rar,严格的说是具备打包和压缩功能的一种格式。(来源:http://blog.csdn.net/inkfish)

      因为本人在项目中需主要需要应用压缩工具对网络中传输的数据流进行压缩,因此重点关心对Stream的压缩,而不关心对多个文件的压缩,这在代码中也会有所体现。因此,本系列的代码一般仅适用于压缩流或压缩一个文件。(来源:http://blog.csdn.net/inkfish)

  LZMA、QuickLZ、LZO因为提供的类库不支持stream形式压缩或提供的example太难看懂,故不作测试。这里还有一个需要提醒,Apache commons compress的tar、zip、bzip2来最初源于ant,但经过项目间迁移、演化,API及性能有所不同。(来源:http://blog.csdn.net/inkfish)

  所有的格式均提供压缩和解压两个方法,再次提醒这里所有代码不适用于压缩多个文件、文件夹。下面是抽象的压缩、加压缩类:(来源:http://blog.csdn.net/inkfish)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值