Java ImageIO.read返回NULL,没有错误
下面的代码似乎不起作用,即使该文件看起来很好Java ImageIO.read返回NULL,没有错误,java,image,Java,Image,下面的代码似乎不起作用,即使该文件看起来很好 images = new BufferedImage[32]; FileInputStream fis = null; for (int i = 0; i < 32; i++) { File file = new File("tiles\\"+i+".bmp"); if (!file.exists()){ System.out.println("File "+i+
images = new BufferedImage[32];
FileInputStream fis = null;
for (int i = 0; i < 32; i++) {
File file = new File("tiles\\"+i+".bmp");
if (!file.exists()){
System.out.println("File "+i+" failed");
}
try {
fis = new FileInputStream(file);
} catch (FileNotFoundException e) {
System.err.println(e + "" + i);
}
try {
images[i] = ImageIO.read(fis);
} catch (IOException e) {
System.err.println(e + "" + i);
}
if (images[i] == null) {
System.out.println("Image "+i+" failed");
}
}
images=newbufferedimage[32];
FileInputStream fis=null;
对于(int i=0;i<32;i++){
File File=新文件(“tiles\\”+i+“.bmp”);
如果(!file.exists()){
System.out.println(“文件”+i+“失败”);
}
试试{
fis=新文件输入流(文件);
}catch(filenotfound异常){
系统错误打印项次(e+“”+i);
}
试试{
图像[i]=图像读取(fis);
}捕获(IOE){
系统错误打印项次(e+“”+i);
}
if(图像[i]==null){
System.out.println(“图像”+i+“失败”);
}
}
提前感谢您的帮助
编辑:结果是我尝试使用Graphics.drawImage(图像[0]);,它给了我一个空指针异常。这里的代码完成得很好
编辑:按建议移动if(!file.exists()),并将文件包装到输入流中。ImageIO.read(文件)如果找不到注册的图像阅读器,strong>将返回null。请检查您是否已注册任何图像阅读器
我认为这个代码片段可以帮助您
File file = new File("bear.jpg"); // I have bear.jpg in my working directory
FileInputStream fis = new FileInputStream(file);
BufferedImage image = ImageIO.read(fis); //reading the image file
您只需将文件包装到一个文件输入流中,然后将其传递到读取()ImageIO.read(*…)
将只加载这些图像类型GIF、PNG、JPEG、BMP、和WBMP
任何其他图像类型都将返回null
,无错误
参考:
我确实意识到这不是针对特定原始问题的解决方案,而是针对所问问题的解决方案。尝试将InputStream包装到BufferedInputStream中: fis=新文件输入流(文件);=>
新建BufferedInputStream(新建FileInputStream(文件)) 你能描述一下结果吗?胡乱猜测:中的路径不正确……如果(!file.exists())System.out.println(“file”+i+“failed”),为什么不将测试放在这里;在阅读之前?我可能仍然没有正确地做这件事,但我所做的是不成功的。我更改了上面的代码以显示更改的内容。你能说出磁盘中的图像文件名吗?@Naberius你能说出磁盘中的图像文件名吗?这对我来说非常有效。对不起,周末不能上网。文件名为0.bmp、1.bmp,最多31个。它们也存储在一个名为“tiles”的文件夹中,但从该文件夹中取出后不会发生任何变化。@Naberius然后尝试使用File File=new File(“tiles”+i+“.bmp”);这