简体   繁体   English

ImageIO 无法读取图像输入文件

[英]ImageIO can't read image input file

This is my first post.这是我的第一篇文章。 Excuse me if I'm making an obvious mistake.如果我犯了一个明显的错误,请原谅。

BufferedImage img = null;

File file = new File("com/game/assets/badlogic.jpg");

try {
   img = ImageIO.read(file);
} catch (IOException e) {
    e.printStackTrace();
}

This is my code and it can't read my image input file for some reason.这是我的代码,由于某种原因它无法读取我的图像输入文件。 This is the error message:这是错误消息:

javax.imageio.IIOException: Can't read input file!
    at java.desktop/javax.imageio.ImageIO.read(ImageIO.java:1308)
    at com.engine.Main.run(Main.java:41)
    at java.base/java.lang.Thread.run(Thread.java:844)
    at com.engine.Main.start(Main.java:32)
    at com.game.GameManager.main(GameManager.java:51)

I have no clue what am I doing wrong.我不知道我做错了什么。 Anyways Thank You, kind Strangers.无论如何,谢谢你,善良的陌生人。

I got it to work!我让它工作!

BufferedImage img = null;

try {
   img = ImageIO.read(new FileInputStream("/Users/earmalys/Desktop/InteliJ projects/mantengine/src/com/game/assets/badlogic.jpg"));
} catch (IOException e) {
   e.printStackTrace();
}

But the file path is very exact.但是文件路径非常准确。 Is there anyway I can get around this?无论如何我可以解决这个问题吗?

Whenever I get a BufferedImage from a file, I find it much easier to use a FileInputStream rather than a File .每当我从文件中获取BufferedImage ,我发现使用FileInputStream而不是File更容易。 Here's an example:下面是一个例子:

try {
    BufferedImage image = ImageIO.read(new FileInputStream("com/game/assets/badlogic.jpg"));
} 
catch (IOException e) { 
    e.printStackTrace();
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM