ImageIO无法读取输入文件

public static void imRes(String pat) { try { BufferedImage bckimg = ImageIO.read(new File("c:/s/deneme.jpg")); File s = new File(pat); BufferedImage im = ImageIO.read(s); BufferedImage im1 = resIm(im); BufferedImage finIm = mergIm(im1, bckimg); ImageIO.write(finIm, "jpg", new File("c:/s/deneme1.jpg")); } catch (IOException e) { e.printStackTrace(); } 

这是我的第一篇文章,如果我做错了,请原谅。 此代码正常运行,直到我尝试从源包中读取图像。 但现在它无法读取任何图像。 我究竟做错了什么? 或者它是关于日食的东西?

例外:

 javax.imageio.IIOException: Can't read input file! at javax.imageio.ImageIO.read(Unknown Source) at imRe.imRes(imRe.java:12) at imReTest.main(imReTest.java:6) 

谢谢…

如果您使用的是Windows,请更改/ \

更具跨平台的方法将是替代方案

C:用于File.listRoots()[0]和每个/用于File.separator

阅读有关File api文档的更多信息

编辑

(我没看过这行,对不起)

此代码正常运行,直到我尝试从源包中读取图像

为了从jar包中获取文件,必须使用getClass().getResource()方法。

例:

 application-package: |-Main.java |-resources |-image.jpg 

对于上面的目录结构:

 BufferedImage im = ImageIO.read(new File(getClass().getResource("/resources/image.jpg").toURI())); 

会做的伎俩。