解决异常: javax.imageio.IIOException: Can't read input file!

328人浏览 / 0人评论

在项目中将试卷生成pdf的时候,有时候正常,有时候有不能生成,出现了异常 javax.imageio.IIOException: Can't read input file!。出现这段异常的代码是1行读取图片添加到pdf中的操作,仔细检查了一下代码,这个图片是我自己生成的,而且生成后我还做了检查,为什么有的pdf页面可以生成,有的却不能生成?

经过反复不停的调试,后来发现是因为在生成pdf的时候,使用了多线程,在线程结束的时候要回收资源。线程存在先后顺序,先执行完的线程把图片给删除了,如果此时其它线程都已读取了这个图片,则没有问题,如果有线程还未读取,后面再读取的时候,这个文件就不存在了,所以出现了上述异常。

总结,出现这个异常是因为图片无法访问导致的,通过如下途径解决:

1.查看文件是否存在。

2.查看文件名称和路径中是否包含特殊字符,导致无法读取。

全部评论