Java基礎-壓縮解壓
幾種實現方案
#1.基於java.util.zip;
#2.使用zip4j
#3.使用org.apache.tools.ant
示例程式碼
測試程式碼
<!-- Java zip > zip4j > apache ant --> /** * 方式1 * -基於: java.util.zip * ---https://github.com/Blankj/AndroidUtilCode * ---https://github.com/SearchSunny/Android-zip- * summary: * ---#1.效率高,java.util.zip解壓效率是zip4j的4倍 * ---#2.支援.zip */ public static void zipWithJava() { long startTime = System.currentTimeMillis(); try { ZipUtils.unzipFile(zipFilePath, unzipFilePath); } catch (IOException e) { e.printStackTrace(); } long endTime = System.currentTimeMillis(); long costTime = endTime - startTime; System.out.print("Java zip: " + costTime + "ms" + "\n"); }
/** * 方式2 * -基於: zip4j * ---https://github.com/ghost1372/Mzip-Android * ---http://www.lingala.net/zip4j/ * summary: * ---#1.解壓效率比較低; * ---#2.支援.zip .rar; */ public static void zipZip4j() { long startTime = System.currentTimeMillis();
try { ZipArchive.unzip(zipFilePath, unzipFilePath, ""); } catch (Exception e) { e.printStackTrace(); } long endTime = System.currentTimeMillis(); long costTime = endTime - startTime; System.out.print("Zip4j: " + costTime + "ms" + "\n"); }
/** * 方式3 * -基於: org.apache.tools.ant * ---http://ant.apache.org/bindownload.cgi * ---https://www.cnblogs.com/jecyhw/p/4531277.html * ---https://www.cnblogs.com/interdrp/p/6734033.html * summary: * ---#1.解壓效率最低; * ---#2.支援.zip; */ public static void zipApacheAnt() { long startTime = System.currentTimeMillis();
try { AntZip.unzip(zipFilePath, unzipFilePath); } catch (Exception e) { e.printStackTrace(); } long endTime = System.currentTimeMillis(); long costTime = endTime - startTime; System.out.print("ApacheAnt: " + costTime + "ms" + "\n"); } |
Source:
https://github.com/zhengoogle/Java-Common/tree/master/ZipLibrary