java解压zip压缩包报错MALFORMED问题解决

使用

ZipArchiveInputStream zipInputStream = new ZipArchiveInputStream(file.getInputStream(), "GBK")

不要使用
ZipInputStream

ZipInputStream 和 ZipArchiveInputStream 都是 Java 中用于处理 Zip 文件的类,但是它们之间有一些区别。

  1. ZipInputStream 是 Java 标准库中提供的类,而 ZipArchiveInputStream 是 Apache Commons Compress 库中提供的类。

  2. ZipInputStream 只能读取普通的 Zip 文件,而 ZipArchiveInputStream 支持读取多种压缩格式,包括 Zip、Gzip、Tar、Jar 等。

  3. ZipArchiveInputStream 提供了更多的选项和功能,例如可以设置编码方式、支持密码保护的 Zip 文件等。

  4. ZipArchiveInputStream 的性能比 ZipInputStream 更好,在处理大型 Zip 文件时表现更出色。

因此,如果需要处理多种压缩格式的文件或者需要更多的选项和功能,建议使用 ZipArchiveInputStream;如果只需要处理普通的 Zip 文件,可以使用 ZipInputStream。

猜你喜欢

转载自blog.csdn.net/Ellis_li/article/details/131223005