java zip malformed_java 解压zip java.lang.IllegalArgumentException: MALFORMED 错误
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 错误相关推荐
- activiti 解压zip java.lang.IllegalArgumentException: MALFORMED 错误
工作流导入 @Overridepublic int create(MultipartFile file, String name, String category) {try{if (file != ...
- Java 压缩与解压zip文件
一.压缩文件大致可以分为三种:ZIP.JAR.GZ. 压缩流 在日常中经常会使用到像WinRAR或WinZIP这样的压缩文件,通过这些软件可以把一个很大的文件进行压缩以方便传输. 在JAVA中,为了减 ...
- Java压缩、解压zip文件
代码: public class ZipUtil {/*** 压缩文件/文件夹**/public static void compress(String srcFilePath, String des ...
- java csv文件tozip后损坏_java上传并下载以及解压zip文件有时会报文件被损坏错误分析以及解决...
情景描述: 1.将本地数据备份成zip文件: 2.将备份的zip文件通过sftp上传到文件服务器: 3.将文件服务器上的zip文件下载到运行服务器: 4.将下载的zip文件解压到本地(文件大小超过50 ...
- java 解压文件_java实现解压zip文件,(亲测可用)!!!!!!
项目结构: Util.java内容: package com.cfets.demo; import java.io.File; import java.io.FileOutputStream; imp ...
- Android开发之Zip下载解压
本篇博客为需求而发烧,若有雷同需求code拿走不谢. 需求如下:点击Item,从服务器下载zip包到本地文件夹并解压,解压后的图片文件全部查询出来,用于界面预览 没有强制每次都下载zip包保持最新,如 ...
- java zip malformed_压缩/解压 zip 时遇到 java.lang.IllegalArgumentException: MALFORMED
因为zip文件名为中文,或者压缩内容有中文 解决方法: 错误详情: SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinde ...
- java zip压缩 加密码_java 压缩成zip文件、解压zip文件(可设置密码)
1.情景展示 java实现将文件夹进行压缩打包的功能及在线解压功能 2.解决方案 方式一:压缩.解压zip 准备工作:slf4j-api.jar org.slf4j slf4j-api 1.7.25 ...
- Java中zip压缩解压
1. 解压问题 360压缩文件 使用jdk API 读取压缩文件后解压,报错 java.lang.IllegalArgumentException:MALFORMED 如果是好压压缩文件,使用jdk ...
最新文章
- 初学Python常见异常错误,总有一处你会遇到!
- Linux下设置时区(通过shell设置和程序中设置)及程序中设置环境变量
- Phpcms之核心目录phpcms
- VS2010 MFC中控件、对话框等背景颜色动态修改的方法
- Java 8 Friday:使用Streams API时的10个细微错误
- 19 删除链表的倒数第N个
- pat04-树7. Search in a Binary Search Tree (25)
- java学习(四)static静态变量 和this
- 中国公有云 Top10
- 为 WE 打 Call!
- 一万小时定律的数学解释
- The requested PHP extension ext-redis * is missing from your system. Install or enable PHP's redis e
- Java数据类型转换(从低精度到高精度排序)
- 自定义Android Switch控件
- 【操作系统原理-陈渝老师】第一章 课程介绍及操作系统初识
- 计算机基础键盘操作,电脑基础入门操作知识三:如何使用键盘盲打
- 《使用Java实现一元二次方程求根计算器》改进版
- 如何快速提升 Flutter App 中的动画性能
- Python PyQt5简介
- X264代码走读二(intra_refresh实现)
热门文章
- [2015-06-10 20:53:50 - Android SDK] Error when loading the SDK:
- python读取usb扫码枪数据_PyUsb USB条码扫描
- 2021,送你一朵小红花
- linux重复文件管理,在windows下解压缩Linux内核源代码出现重复文件原因
- typescript:感叹号的用法
- 揭秘 OAM Kubernetes 实现核心原理
- Android 智能TV电视系统遥控器键值添加
- 【转】How can I get firmware version of a Qlogic HBA card?
- 科技攻关 成功构建出国产芯片区块链智能合约专用并行计算卡
- matlab fdatool陷波器,基于MATLAB的简单50Hz数字陷波器.doc