求救各位,ImageIO.read时报错,怎么才能读取这图片文件

kangta510 2012-09-04 10:10:38
用Windows自带的图像查看器打开是张空白没有预览的图片,但是用Picasa照片查看器可以看到是一张气象图片,用ImageIO.read这文件的时候就报错,我是想循环批量读取文件夹里面的所有图片,但是每次读到这张图的时候就报错,后面的都无法读取了,该怎么办?

import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException;  import javax.imageio.ImageIO;  public class BufferedImageTest {  	/** 	 * @param args 	 */ 	public static void main(String[] args) { 		File file =new File("E://star201208091530.gif"); 		BufferedImage image=null;          try {         	 image=ImageIO.read(new File("F://"+file.getName()));	         	 ImageIO.write(image,file.getName().split(".")[1] , file); 		} catch (IOException e) { 			e.printStackTrace();	 		} 	} }



报这样的错误:

Exception in thread "main" java.lang.IndexOutOfBoundsException at java.io.RandomAccessFile.readBytes(Native Method) at java.io.RandomAccessFile.read(RandomAccessFile.java:322) at javax.imageio.stream.FileImageInputStream.read(FileImageInputStream.java:101) at com.sun.imageio.plugins.gif.GIFImageReader.getCode(GIFImageReader.java:306) at com.sun.imageio.plugins.gif.GIFImageReader.read(GIFImageReader.java:881) at javax.imageio.ImageIO.read(ImageIO.java:1422) at javax.imageio.ImageIO.read(ImageIO.java:1282) at temp.BufferedImageTest.main(BufferedImageTest.java:18)


报错图片文件:
下载
...全文
1315 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
kangta510 2012-09-04
  • 打赏
  • 举报
回复
呃,谢了啊
MiceRice 2012-09-04
  • 打赏
  • 举报
回复
完全不需要用if,直接用异常捕捉来处理不就好了?

try {
ImageIO.xxxx();
} catch (RuntimeException ex) {
// 直接无视,或者用continue去做下一个循环好了
}
kangta510 2012-09-04
  • 打赏
  • 举报
回复
1楼你好,请问有没有办法用if判断java不支持图像文件就跳过去啊,让它不爆异常
MiceRice 2012-09-04
  • 打赏
  • 举报
回复
恐怕是这个图片的压缩制式Java并不支持 或者 该图片有轻微损坏,
建议你用Picasa打开后另存成新的jpg或者png啥的,Java就能打开了。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧