软件开发工具推荐:ZeroTurnaround ZIP类库

开发 后端
在Java平台上有很多官方的和非官方、第三方的压缩工具包,它们各有各的长处,比如Oracle官方的java.util.zip 类库,Apache网站上的Apache Commons Compress 类库,或者Chilkat Java Zip 类库,但总体说来,这些类库提供都是低级别的API,操作起来都不是很方便。

在Java平台上有很多官方的和非官方、第三方的压缩工具包,它们各有各的长处,比如Oracle官方的java.util.zip 类库,Apache网站上的Apache Commons Compress 类库,或者Chilkat Java Zip 类库,但总体说来,这些类库提供都是低级别的API,操作起来都不是很方便,而今天推荐给大家的这个叫做ZeroTurnaround(简称zt-zip)的压缩类库的特点就是方便、简易,我们可以比较一下,如果用标准的Java类库压缩一个目录里的所有文件,你需要写出的代码大概是这样:

  1. File dir = new File("demo"); 
  2. ZipOutputStream out = new ZipOutputStream(new FileOutputStream("demo.zip")); 
  3. try { 
  4.   File[] files = dir.listFiles(); 
  5.   for (int i = 0; i < files.length; i++) { 
  6.     File file = files[i]; 
  7.     ZipEntry entry = new ZipEntry(file.getName()); 
  8.     entry.setSize(file.length()); 
  9.     entry.setTime(file.lastModified()); 
  10.     out.putNextEntry(entry); 
  11.     FileInputStream in = new FileInputStream(file); 
  12.     try { 
  13.       IOUtils.copy(in, out); 
  14.     } finally { 
  15.       IOUtils.closeQuietly(in); 
  16.     } 
  17.     out.closeEntry(); 
  18.   } 
  19. finally { 
  20.   IOUtils.closeQuietly(out); 

而使用zt-zip工具包,你的代码就变成了只有一行:

  1. ZipUtil.pack(new File("demo"), new File("demo.zip")); 

你不需要自己去关闭文件的数据流,这个类库的接口自动替你你做了这些。

可能经常做Java压缩编程的人会提到另外一个压缩类库:TrueZIP,这也是一个非常好的类库,而zt-zip跟它比起来的一个优势是:消耗内存很少,这是因为TrueZIP大量的使用了虚拟机的堆内存,而zt-zip却是只是以数据流的形式进行操作,当然这也是zt-zip的API提供的功能很有针对性、不是TrueZIP API那样通用的原因。

你可以在Github上下载这个类库

原文链接:http://www.aqee.net/development-tools-zt-zip/

【编辑推荐】

  1. Apache UIMA Java SDK 2.4.0 发布 附下载
  2. Argparse4j 0.2 发布 Java命令行解析库
  3. Sanaware Java Docking 1.5.0 发布 附下载
  4. JavaMelody 1.33.0 发布 Java应用监控
  5. Java应用服务器 Eclipse Virgo 3.0.2发布
责任编辑:林师授 来源: 外刊IT评论
相关推荐

2012-02-07 09:07:37

firefox

2011-12-29 09:06:45

软件

2014-04-28 09:35:19

红帽开源软件

2020-05-31 14:02:50

人工智能开发工具

2010-03-16 09:41:57

Windows Pho

2019-12-26 09:52:40

工具代码开发

2010-06-04 17:26:53

Linux 开发工具

2013-11-21 10:21:25

2010-09-17 10:18:59

ODTOPhone

2013-04-27 15:13:23

跨平台

2010-07-06 15:30:12

RationalJazz

2014-04-02 09:03:39

红帽

2011-08-05 14:34:13

2010-05-25 13:28:17

WinSDK 7.1.NETWindow 7

2010-07-14 13:57:30

Perl开发工具

2019-04-23 13:51:43

程序员技能开发者

2010-05-28 13:38:29

Linux开发工具

2011-05-11 09:03:33

javascript开发工具

2021-10-19 09:44:22

开发测试工具

2021-02-05 23:23:55

Web开发工具
点赞
收藏

51CTO技术栈公众号