记报错信息:java.lang.IllegalArgumentException: MALFORMED解决方案

在调用JDK自带的zipfile读取压缩包文件的时候,出现了以下错误:

SjXcmcFeignClient:124 - BaseFeignClient 拦截到【未知系统异常】Exception异常:

java.lang.IllegalArgumentException: MALFORMED[1]

at java.util.zip.ZipCoder.toString(ZipCoder.java:65)

at java.util.zip.ZipFile.getZipEntry(ZipFile.java:583)

at java.util.zip.ZipFile.access$900(ZipFile.java:60)

at java.util.zip.ZipFile$ZipEntryIterator.next(ZipFile.java:539)

at java.util.zip.ZipFile$ZipEntryIterator.nextElement(ZipFile.java:514)

at java.util.zip.ZipFile$ZipEntryIterator.nextElement(ZipFile.java:495)

at com.xcwlkj.ksyw.web.KsjhglSjXcmcFeignClient.updatekszp(KsjhglSjXcmcFeignClient.java:962)

......

后来经过检查,发现压缩包内有一个文件的名字带有中文,解析压缩包中,读取中文文件导致报错,然后查看了Zipfile的构造方法,发现还有一个设置字符编码的参数

public ZipFile(String name, Charset charset) throws IOException

{

this(new File(name), OPEN_READ, charset);

}

于是尝试设置zip的字符编码为GBK格式,如下:

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

代码重新编译后执行,问题得到解决。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 误:java.lang.IllegalArgumentException:格式误 这个误通常是由于输入的参数格式不正确导致的。可能是输入的字符串格式不正确,或者输入的数据类型与要求的不匹配。需要仔细检查输入的参数,确保其符合要求。如果无法确定问题所在,可以查看具体的信息,以便更好地定位问题。 ### 回答2: ERROR:JAVA: JAVA.LANG.ILLEGALARGUMENTEXCEPTION: MALFORMED,这是一种Java语言的异常,在Java编程中比较常见。这种异常通常是由于程序代码中出现了非法参数导致的。在编写Java程序时,如果在调用方法时传入了误的参数,就可能会发生这种异常。 异常信息中的“MALFORMED”代表了“格式误”的含义。这种异常通常与Java的API相关。比如说,在使用Java自带的字符串API时,如果给定的字符串不符合API的格式要求,就有可能抛出这种异常。 出现这种异常,通常需要检查程序代码中的输入参数是否正确。我们可以检查代码中的所有参数,在找到问题所在后,可以进行必要的修改和调整,使之满足API的要求。如果多次尝试仍然无法找到问题所在,可以使用调试工具对程序代码进行调试,进一步进行定位和修复。 总之,在编写Java程序时,不要忽视输入参数的正确性,尽量保证程序中的所有参数符合要求。如果程序中出现了异常,就要查看异常信息,及时处理问题,确保程序的正确性和稳定性。 ### 回答3: 这个信息Java 中的异常信息,意味着程序出现了不合法的参数异常。 Java 中的 IllegalArgumentException 是继承自 RuntimeException 的一种异常,表示不合法的参数异常。这种异常通常是由传入的参数不符合方法的要求或者范围引起的,比如传入一个空字符串到一个不允许为空的方法,或者传入一个大于规定长度的字符串等。 在这个具体的信息中,误类型是 "malformed",这意味着传入的参数格式不正确。在大多数情况下,这个信息通常是由一个不正确的方法调用或者参数传递引起的。因此,要修复这个误,需要检查代码中的方法调用和参数传递,以确保传递的参数符合方法的预期格式。 一些解决误的方法包括: 1. 确保传递的参数符合方法的规定,例如确保传递的参数不为空、长度符合要求等。 2. 检查参数是否经过了正确的编码和解码,例如在前后端数据传输时,确保数据经过了正确的编码和解码。 3. 引入一个参数验证工具,确保在方法调用前对参数进行验证,以避免不合法的参数传递。 总之,在 Java 中遇到 IllegalArgumentException 异常,需要检查代码中的方法调用和参数传递,以确保传递的参数是符合方法预期的。同时,也要注意数据编码解码等问题,从而避免出现不合法参数异常。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值