Страницы

Поиск по вопросам

суббота, 8 февраля 2020 г.

Относительный путь при открытии файла

#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");

Комментариев нет:

Отправить комментарий