近期项目遇到解压zip文件的需求,想着用java.util.zip.ZipFile
来实现,又觉得这一套挺繁琐,有没有现成的轮子可以用呢?
网上搜索了一番,找到了一个Zip4j的库,一下被其简洁的调用所吸引。
用到项目中:
- 在pom中引入:
<dependency>
<groupId>net.lingala.zip4j</groupId>
<artifactId>zip4j</artifactId>
<version>2.5.2</version>
</dependency>
- 要用到的地方导入
import net.lingala.zip4j.ZipFile;
import net.lingala.zip4j.exception.ZipException;
- 使用
public static void main(String[] args) throws IOException {
String source = "xx/xx/xx.zip";
String des = "xx/xx";
ZipFile zipFile = new ZipFile(source);
//防止乱码
zipFile.setCharset(Charset.forName("gbk"));
//查看包内所有文件名
List<FileHeader> fileHeaders = zipFile.getFileHeaders();
fileHeaders.stream().forEach(fileHeader -> System.out.println(fileHeader.getFileName()));
//解压所有文件到目标文件夹
zipFile.extractAll(des);
}
更多用法请查看官方文档:github