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()));
会做的伎俩。