最近在做项目打包相关的工作。需要用 java 把一个有很多文件的目录压缩为zip,或者解压aar,抽取里面的文件。所以需要用到java实现的打包zip的工具类。网上搜了一下,大致都是java自身的ZipFile实现的。实现代码我汇总了,见如下文件:
BaseMyProject/ZipByJava.java at master · chenglin198751/BaseMyProject · GitHub
但是吧,我测试了下性能,发现,不理想,打包一个一千个文件的项目,在我的台式机 i3 上面,大概需要3分钟。为什么我在用 i3 的机器写代码?因为疫情突然被隔离在家了,电脑没带,只能用家里的这台2011年买的电脑古董机工作了。
接上文,3分钟,显然时间有点长。我在想,有没有更好的方法实现呢?于是就开始想,ant打包,其实是自带了压缩解压缩工具的,那么是不是可以用ant的jar包呢,试了试,果然,可以。ant jar 自带的压缩工具,打包我这一千个文件,只需要10秒钟。OK ,非常满意。
ant jar 下载:
https://github.com/chenglin198751/BaseMyProject/blob/master/app/libs/ant_v1.10.12.jar
ant 打包zip 实现类:
https://github.com/chenglin198751/BaseMyProject/blob/master/app/src/main/java/com/wcl/test/utils/ZipByAnt.java