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

本文详细探讨了Java.util.zip下ZipInputStream处理中文文件名时出现的乱码问题,提供了解决方案:一是修改JDK源码,二是采用Ant的Zip类,允许设置字符集,有效避免乱码。
    ava.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)  

上面存在中文问题是因为Java.util.zip下的格式转换有问题 ,jdk中的zip存在字符编码的问题。

 

然后跟提供了两种办法

 

 

 

1.更改JDK的源码。
2.使用ant中的zip类。可以设定字符集

然后就换成了ant.jar包

  1. ava.lang.IllegalArgumentException: MALFORMED  
  2.     at java.util.zip.ZipCoder.toString(Unknown Source)  
  3.     at java.util.zip.ZipInputStream.readLOC(Unknown Source)  
  4.     at java.util.zip.ZipInputStream.getNextEntry(Unknown Source)  
  5.     at com.yc.utils.TestZip.extZipFileList(TestZip.java:40)  
  6.     at com.yc.utils.TestZip.main(TestZip.java:21

转载于:https://www.cnblogs.com/interdrp/p/6732877.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值