#java
Здравствуйте, такая проблем:
пытаюсь запустить код:
Image image = null;
File file = new File("tmp/assets/icon.png");
try {
image = ImageIO.read(file);
} catch (IOException e) {
e.printStackTrace();
}
и получаю: javax.imageio.IIOException: Can't read input file!
Но при этом:
bufferedimage = Toolkit.getDefaultToolkit().getImage("tmp/assets/icon.png");
работает нормально.
Вопрос - по какой причине первый способ может не открывать файл?
P.S. Файловая структура:
tmp
|->assets
| |->icon.png
|
|->FileWithPublicClass.java
В обоих случаях IDE говорит, что файл используется.
Ответы
Ответ 1
Ответ: Программа в обоих случаях работала неккоректно. Пути к файлам необходимо указывать оносительно корня проекта, а не относительно пакета, в котором используется изображение. Т.е. в моем случае: File file = new File("src/tmp/assets/icon.png"); Image image = ImageIO.read(file); или Image image = Toolkit.getDefaultToolkit().getImage("src/tmp/assets/icon.png");
Комментариев нет:
Отправить комментарий