Java SE 的ImageIO.read()问题

qq2691612999 2016-10-02 01:17:30
代码如下
try {
image1=ImageIO.read(new File("e:/ecl/A/src/bomb_1.gif"));
image2=ImageIO.read(new File("e:/ecl/A/src/bomb_2.gif"));
image3=ImageIO.read(new File("e:/ecl/A/src/bomb_3.gif"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


请问 image1=ImageIO.read(new File("e:/ecl/A/src/bomb_1.gif")); 这里的路径 为什么要写e盘的这个路径 而不能写eclipse上的路径呢 我用image1=Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("/bomb_1.gif")); 这个方法的路径可以读取图片没报错 为什么用了 image1=ImageIO.read(new File("e:/ecl/A/src/bomb_1.gif")); 这个方法后 路径要换成e盘的这个路径 而不能用"/bomb_1.gif" 这个路径呢 用后面这个路径会报错 说读取不了图片 请大神回答下 跪谢!
...全文
566 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
捏造的信仰 2016-10-04
  • 打赏
  • 举报
回复
ImageIO.read() 方法接受四种类型的参数。除了 ImageInputStream 以外,我们通常用到的是以下三种: 1、File 对象。只需创建合法的 File 对象传入即可,文件路径必须是对的。这里不多说。该方法适用于绝对路径,也就是项目外的图片文件。 2、InputStream 对象。该方法适合任何从流读取的图片,包括网络图片。例如:
        String url = "http://cn.bing.com/sa/simg/CN_Logo_Gray.png";
        BufferedImage image = ImageIO.read(new URL(url).openStream());
当然读取文件也是可以的:
        BufferedImage image = ImageIO.read(new FileInputStream("F:/76.jpg"));
如果是要读取项目内的文件,就需要通过 Class 类了:
        BufferedImage image = ImageIO.read(ImageIO.class.getResourceAsStream("/images/test.png"));
上面的例子中,文件 test.png 放在 classpath 下的 images 目录下,而且 ImageIO.class 可以换成任何其他类。 3、URL。该方法适合读取任何可从 URL 地址访问的图片,例如:
        String url = "http://cn.bing.com/sa/simg/CN_Logo_Gray.png";
        BufferedImage image = ImageIO.read(new URL(url));
综上所述,可见从流读取图片是适用最广的,因为任何资源都可以转化成流来读取。
qq2691612999 2016-10-03
  • 打赏
  • 举报
回复
也不行 试过了 好像要绝对路径
上划线 2016-10-02
  • 打赏
  • 举报
回复
new File("bomb_1.gif"); 去掉斜杠

62,614

社区成员

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

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