Да.На самом деле это очень важно.
Изображение является ресурсом .Ресурс - это некоторая неизменная информация, которая используется программой, например изображения, звуки, свойства по умолчанию, шаблоны, исходные данные и т. Д.
Во время разработки с использованием среды IDE ресурсы обычно хранятся в виде файлов.в папке в вашем рабочем пространстве.Поэтому, пока вы используете IDE и не упаковываете программу, вы можете обходиться без обработки ресурсов как файлов.
Но когда вы хотите развернуть свою программу (упакуйте ее и установите в другом месте, например,сервер или чей-либо компьютер), обычно он упакован в один или несколько файлов JAR.Файлы JAR включают скомпилированные классы и ресурсы.
Когда они находятся внутри файла JAR, ресурсы больше не являются файлами.Это просто zip-записи (zip-записи не являются файлами - они являются частью zip-файла, доступ к которому можно получить с помощью соответствующего программного обеспечения).
Если вы использовали файловые операции для доступа к ресурсу, вы столкнетесь спроблема, как эта .Изображение не будет отображаться - потому что файла там нет.Ресурс не является файлом, он не существует как файл на диске.Это просто группа байтов в вашем JAR-файле.
Чтобы получить доступ к ресурсу, вы используете объект класса и getResourceAsStream()
, как вам было показано.Это «магически» знает (когда загрузчик классов и путь к классам настроены правильно), что при запуске внутри среды IDE ресурс сохраняется в файле в рабочей области, а при запуске из JAR ресурс сохраняется внутриJAR.Он получит эти байты от того места, где они хранятся, и вы сможете создать свое изображение.