軟件開(kāi)發(fā)工具推薦:ZeroTurnaround ZIP類庫(kù)
在Java平臺(tái)上有很多官方的和非官方、第三方的壓縮工具包,它們各有各的長(zhǎng)處,比如Oracle官方的java.util.zip 類庫(kù),Apache網(wǎng)站上的Apache Commons Compress 類庫(kù),或者Chilkat Java Zip 類庫(kù),但總體說(shuō)來(lái),這些類庫(kù)提供都是低級(jí)別的API,操作起來(lái)都不是很方便,而今天推薦給大家的這個(gè)叫做ZeroTurnaround(簡(jiǎn)稱zt-zip)的壓縮類庫(kù)的特點(diǎn)就是方便、簡(jiǎn)易,我們可以比較一下,如果用標(biāo)準(zhǔn)的Java類庫(kù)壓縮一個(gè)目錄里的所有文件,你需要寫出的代碼大概是這樣:
- File dir = new File("demo");
 - ZipOutputStream out = new ZipOutputStream(new FileOutputStream("demo.zip"));
 - try {
 - File[] files = dir.listFiles();
 - for (int i = 0; i < files.length; i++) {
 - File file = files[i];
 - ZipEntry entry = new ZipEntry(file.getName());
 - entry.setSize(file.length());
 - entry.setTime(file.lastModified());
 - out.putNextEntry(entry);
 - FileInputStream in = new FileInputStream(file);
 - try {
 - IOUtils.copy(in, out);
 - } finally {
 - IOUtils.closeQuietly(in);
 - }
 - out.closeEntry();
 - }
 - } finally {
 - IOUtils.closeQuietly(out);
 - }
 
而使用zt-zip工具包,你的代碼就變成了只有一行:
- ZipUtil.pack(new File("demo"), new File("demo.zip"));
 
你不需要自己去關(guān)閉文件的數(shù)據(jù)流,這個(gè)類庫(kù)的接口自動(dòng)替你你做了這些。
可能經(jīng)常做Java壓縮編程的人會(huì)提到另外一個(gè)壓縮類庫(kù):TrueZIP,這也是一個(gè)非常好的類庫(kù),而zt-zip跟它比起來(lái)的一個(gè)優(yōu)勢(shì)是:消耗內(nèi)存很少,這是因?yàn)門rueZIP大量的使用了虛擬機(jī)的堆內(nèi)存,而zt-zip卻是只是以數(shù)據(jù)流的形式進(jìn)行操作,當(dāng)然這也是zt-zip的API提供的功能很有針對(duì)性、不是TrueZIP API那樣通用的原因。
你可以在Github上下載這個(gè)類庫(kù)。
原文鏈接:http://www.aqee.net/development-tools-zt-zip/
【編輯推薦】















 
 
 
 
 
 
 