zip压缩包在解压过程中,遇到了错误,提示如下

java.lang.IllegalArgumentException: MALFORMED

at java.util.zip.ZipCoder.toString(Unknown Source)

at java.util.zip.ZipInputStream.readLOC(Unknown Source)

at java.util.zip.ZipInputStream.getNextEntry(Unknown Source)

at com.yc.utils.TestZip.extZipFileList(TestZip.java:40)

at com.yc.utils.TestZip.main(TestZip.java:21)

查阅网上的资料,有一个说是编码的问题,

看看老外怎么说,参考了一下,确实是编码的问题。附上我的部分解压缩代码

public static void unzip(String zipFilePath, String targetPath)

throws IOException {

OutputStream os = null;

InputStream is = null;

ZipFile zipFile = null;

try {

zipFile = new ZipFile(zipFilePath,Charset.forName("GBK"));

String directoryPath = "";

if (null == targetPath || "".equals(targetPath)) {

directoryPath = zipFilePath.substring(0, zipFilePath

.lastIndexOf("."));

} else {

directoryPath = targetPath;

}

Enumeration> entryEnum = zipFile.entries();

if (null != entryEnum) {

ZipEntry zipEntry = null;

while (entryEnum.hasMoreElements()) {

zipEntry = (ZipEntry) entryEnum.nextElement();

if (zipEntry.getSize() > 0) {

// 文件

File targetFile = FileUtil.buildFile(directoryPath

+ File.separator + zipEntry.getName(), false);

os = new BufferedOutputStream(new FileOutputStream(targetFile));

is = zipFile.getInputStream(zipEntry);

byte[] buffer = new byte[4096];

int readLen = 0;

while ((readLen = is.read(buffer, 0, 4096)) >= 0) {

os.write(buffer, 0, readLen);

os.flush();

}

is.close();

os.close();

}

if (zipEntry.isDirectory()) {

String pathTemp = directoryPath + File.separator

+ zipEntry.getName();

File file = new File(pathTemp);

file.mkdirs();

System.out.println(pathTemp);

// continue;

}

}

}

} catch (IOException ex) {

throw ex;

} finally {

if(null != zipFile){

zipFile.close();

zipFile = null;

}

if (null != is) {

is.close();

}

if (null != os) {

os.close();

}

}

}

声明:

zipFile = new ZipFile(zipFilePath,Charset.forName("GBK"));不是所有压缩包的编码都是GBK,针对不同情况需要特殊处理。

java zip malformed_java 解压zip java.lang.IllegalArgumentException: MALFORMED 错误相关推荐

  1. activiti 解压zip java.lang.IllegalArgumentException: MALFORMED 错误

    工作流导入 @Overridepublic int create(MultipartFile file, String name, String category) {try{if (file != ...

  2. Java 压缩与解压zip文件

    一.压缩文件大致可以分为三种:ZIP.JAR.GZ. 压缩流 在日常中经常会使用到像WinRAR或WinZIP这样的压缩文件,通过这些软件可以把一个很大的文件进行压缩以方便传输. 在JAVA中,为了减 ...

  3. Java压缩、解压zip文件

    代码: public class ZipUtil {/*** 压缩文件/文件夹**/public static void compress(String srcFilePath, String des ...

  4. java csv文件tozip后损坏_java上传并下载以及解压zip文件有时会报文件被损坏错误分析以及解决...

    情景描述: 1.将本地数据备份成zip文件: 2.将备份的zip文件通过sftp上传到文件服务器: 3.将文件服务器上的zip文件下载到运行服务器: 4.将下载的zip文件解压到本地(文件大小超过50 ...

  5. java 解压文件_java实现解压zip文件,(亲测可用)!!!!!!

    项目结构: Util.java内容: package com.cfets.demo; import java.io.File; import java.io.FileOutputStream; imp ...

  6. Android开发之Zip下载解压

    本篇博客为需求而发烧,若有雷同需求code拿走不谢. 需求如下:点击Item,从服务器下载zip包到本地文件夹并解压,解压后的图片文件全部查询出来,用于界面预览 没有强制每次都下载zip包保持最新,如 ...

  7. java zip malformed_压缩/解压 zip 时遇到 java.lang.IllegalArgumentException: MALFORMED

    因为zip文件名为中文,或者压缩内容有中文 解决方法: 错误详情: SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinde ...

  8. java zip压缩 加密码_java 压缩成zip文件、解压zip文件(可设置密码)

    1.情景展示 java实现将文件夹进行压缩打包的功能及在线解压功能 2.解决方案 方式一:压缩.解压zip 准备工作:slf4j-api.jar org.slf4j slf4j-api 1.7.25 ...

  9. Java中zip压缩解压

    1. 解压问题 360压缩文件 使用jdk API 读取压缩文件后解压,报错 java.lang.IllegalArgumentException:MALFORMED 如果是好压压缩文件,使用jdk ...

最新文章

  1. 初学Python常见异常错误,总有一处你会遇到!
  2. Linux下设置时区(通过shell设置和程序中设置)及程序中设置环境变量
  3. Phpcms之核心目录phpcms
  4. VS2010 MFC中控件、对话框等背景颜色动态修改的方法
  5. Java 8 Friday:使用Streams API时的10个细微错误
  6. 19 删除链表的倒数第N个
  7. pat04-树7. Search in a Binary Search Tree (25)
  8. java学习(四)static静态变量 和this
  9. 中国公有云 Top10
  10. 为 WE 打 Call!
  11. 一万小时定律的数学解释
  12. The requested PHP extension ext-redis * is missing from your system. Install or enable PHP's redis e
  13. Java数据类型转换(从低精度到高精度排序)
  14. 自定义Android Switch控件
  15. 【操作系统原理-陈渝老师】第一章 课程介绍及操作系统初识
  16. 计算机基础键盘操作,电脑基础入门操作知识三:如何使用键盘盲打
  17. 《使用Java实现一元二次方程求根计算器》改进版
  18. 如何快速提升 Flutter App 中的动画性能
  19. Python PyQt5简介
  20. X264代码走读二(intra_refresh实现)

热门文章

  1. [2015-06-10 20:53:50 - Android SDK] Error when loading the SDK:
  2. python读取usb扫码枪数据_PyUsb USB条码扫描
  3. 2021,送你一朵小红花
  4. linux重复文件管理,在windows下解压缩Linux内核源代码出现重复文件原因
  5. typescript:感叹号的用法
  6. 揭秘 OAM Kubernetes 实现核心原理
  7. Android 智能TV电视系统遥控器键值添加
  8. 【转】How can I get firmware version of a Qlogic HBA card?
  9. 科技攻关 成功构建出国产芯片区块链智能合约专用并行计算卡
  10. matlab fdatool陷波器,基于MATLAB的简单50Hz数字陷波器.doc