有什么好的Java库来压缩/解压缩文件?

我查看了JDK和Apache压缩库随附的默认Zip库,由于以下三个原因,我对它们不满意:

  1. 它们太臃肿了,API设计也不好。我必须写50行锅炉板字节数组输出,压缩输入,文件输出流和关闭相关流,捕捉异常和移动字节缓冲区自己?为什么我不能有一个像zippers.unzip(InputStream zip File,File targetDirectory,String password=null)和zippers.zip(File targetDirectory,String password=null)这样的简单API呢?
  2. 似乎通过压缩解压缩会破坏文件元数据,并且密码处理会被破坏。
  3. 另外,与我从UNIX获得的命令行zip工具相比,我尝试的所有库的速度都慢了2-3倍?

对我来说(2)和(3)是次要点,但我确实想要一个具有单行界面的经过良好测试的库。

回答:

我知道它的时间很晚,并且有很多答案,但是这个zip4j是我使用过的最好的zip库之一。它简单(没有锅炉代码),并且可以轻松处理受密码保护的文件。

import net.lingala.zip4j.exception.ZipException;

import net.lingala.zip4j.core.ZipFile;

public static void unzip(){

String source = "some/compressed/file.zip";

String destination = "some/destination/folder";

String password = "password";

try {

ZipFile zipFile = new ZipFile(source);

if (zipFile.isEncrypted()) {

zipFile.setPassword(password);

}

zipFile.extractAll(destination);

} catch (ZipException e) {

e.printStackTrace();

}

}

Maven依赖项是:

<dependency>

<groupId>net.lingala.zip4j</groupId>

<artifactId>zip4j</artifactId>

<version>1.3.2</version>

</dependency>

以上是 有什么好的Java库来压缩/解压缩文件? 的全部内容, 来源链接: utcz.com/qa/408578.html

回到顶部