Ala*_*laa 14 java image exception
我想检查传递的文件是否是图像,如果不是,我想显示一条消息,指示该文件不是图像.
try{
Image img = ImageIO.read(new File(name));
}catch(IOException ex)
{
valid=false;
System.out.println("The file" + name + "could not be opened, it is not an image");
}
Run Code Online (Sandbox Code Playgroud)
当文件(引用name)不是图像有效时未设置为false,为什么会发生这种情况?我应该更改例外的类型吗?我已经阅读了关于try-catch的内容,据我所知,如果ImageIO.read失败并且异常的类型是IOException,将执行catch块的内容.那为什么不执行呢?
有没有其他方法来检查文件是否是图像?
Bre*_*den 31
根据Javadocs,null如果文件无法作为图像读取,则返回read.
如果没有已注册的ImageReader声称能够读取生成的流,
null则返回.
所以,您的代码应该如下:
try {
Image image = ImageIO.read(new File(name));
if (image == null) {
valid = false;
System.out.println("The file"+name+"could not be opened , it is not an image");
}
} catch(IOException ex) {
valid = false;
System.out.println("The file"+name+"could not be opened , an error occurred.");
}
Run Code Online (Sandbox Code Playgroud)