我遇到的问题是报的这个错java.lang.IllegalArgumentException: MALFORMED[1] at java.util.zip.ZipCoder.toString(ZipCoder.java:65) 不是 java.lang.IllegalArgumentException: MALFORMED at java.util.zip.ZipCoder.toString(ZipCoder.java:58) 报错位置是不一样的 网上查询的大部分是下面的这种报错,而上面的很少 下面的报错解决比较简单 加上编码就可以了 但是我遇到的比较奇怪,之前是mac压缩文件,上传到s3,然后ZipInputStream解压没有问题、 后面测试同样的流程,却报了这个错java.lang.IllegalArgumentException: MALFORMED[1] 把编码去掉就不报错了,但是windows压缩上传的,解压就会报这个错java.lang.IllegalArgumentException: MALFORMED
解决方法: 找到了一个文章,可以从流中读取文件的编码, 发现,windows压缩和mac压缩的文件,读到的编码都是ISO-8859-15, 所以下载文件时就指定了这个为编码方式 不报错,满足了要求,但是中文的会是乱码