Java壓縮處理類庫:ZeroTurnaround ZIP類庫
在 Java 平臺上有很多官方的和非官方、第三方的壓縮工具包,它們各有各的長處,比如 Oracle 官方的 java.util.zip 類庫,Apache 網站上的 Apache Commons Compress 類庫,或者 Chilkat Java Zip 類庫,但總體說來,這些類庫提供都是低級別的 API,操作起來都不是很方便,而今天推薦給大家的這個叫做 ZeroTurnaround (簡稱 zt-zip)的壓縮類庫的特點就是方便、簡易,我們可以比較一下,如果用標準的 Java 類庫壓縮一個目錄里的所有文件,你需要寫出的代碼大概是這樣:
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"));
你不需要自己去關閉文件的數據流,這個類庫的接口自動替你你做了這些。
可能經常做 Java 壓縮編程的人會提到另外一個壓縮類庫:TrueZIP,這也是一個非常好的類庫,而 zt-zip 跟它比起來的一個優勢是:消耗內存很少,這是因為 TrueZIP 大量的使用了虛擬機的堆內存,而 zt-zip 卻是只是以數據流的形式進行操作,當然這也是 zt-zip 的 API 提供的功能很有針對性、不是 TrueZIP API 那樣通用的原因。
你可以在 Github 上下載這個類庫。
來自:
外刊IT評論
本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!