无法在Eclipse中读取图像的输入文件

时间:2015-05-31 15:07:00

标签: java eclipse image

这是我的代码:

BufferedImage downArrow;
BufferedImage downLeftArrow;
BufferedImage downRightArrow;
BufferedImage leftArrow;
BufferedImage rightArrow;
BufferedImage upArrow;
BufferedImage upLeftArrow;
BufferedImage upRightArrow;
public DirectionPanel()
{

    try{
         downArrow = ImageIO.read(new File(("images/downArrow.png")));
         downLeftArrow = ImageIO.read(new File(("images/downLeftArrow.png")));
         downRightArrow = ImageIO.read(new File(("images/downRight.png")));
         leftArrow = ImageIO.read(new File(("images/leftArrow.png")));
         rightArrow = ImageIO.read(new File(("images/rightArrow.png")));
         upArrow = ImageIO.read(new File(("images/upArrow.png")));
         upLeftArrow = ImageIO.read(new File(("images/upLeftArrow.png")));
         upRightArrow = ImageIO.read(new File(("images/upRightArrow.png")));
    }catch(IOException whoops){
        System.out.println(whoops);
    }
}

它在编译器中有效,但是当我尝试运行它时,它会说" javax.imageio.IIOException:无法读取输入文件!"

这是我的文件系统:

Project

|

|____src

      |

      |____MapData

              |

              |____file

|

|____images

        |

        |____downArrow.png

        |

        |____downLeftArrow.png

        |

        |____etc.

出了什么问题?我试图按照以前的答案解决这个问题,这就是我的所在。

1 个答案:

答案 0 :(得分:0)

我建议将您的图像放在资源文件夹中(如果您使用的是IDE)。

然后像这样使用ImageIO:

BufferedImage img = ImageIO.read(DirectoryPanel.class.getClassLoader().getResourceAsStream("images/downArrow.png"));

然后他从中读取图像的路径为<resources-root>/images/downArrow.png。否则,文件路径相对于执行目录所在的位置。