Я создал программу на Java, которую я хочу упаковать в исполняемый файл JAR.Я хочу, чтобы эта программа брала изображения из файла jar и отображала их.Я создал абстрактный класс с методом для взятия имени файла String и возврата объекта Image.Тем не менее, когда я пытаюсь запустить этот метод, он завершается ошибкой и выдает ошибку «IOException: Поток закрыт».
Я не могу найти ничего о том, почему поток закрыт.Насколько я знаю, в моей программе нет других потоков ввода.Использование метода в новом основном файле с использованием только настройки JFrame все еще приводит к той же ошибке.
Если я называю файл изображения только по его имени (например, "example.png") или использую его относительный путь (например, "/src/icons/example.png"), ИЛИ использую его абсолютный путь (т.е."C: /Users/My_Name/Desktop/EXAMPLE/src/icons/example.png") Я получаю ту же ошибку закрытия потока.
public static Image importImage(String fileName) throws IOException {
Image img = null;
byte[] data = new byte[10000];
BufferedInputStream bis = new BufferedInputStream( Thread.currentThread().getClass().getResourceAsStream(fileName));
int byteRead = bis.read(data, 0, 10000);
img = Toolkit.getDefaultToolkit().createImage(data);
return img;
}
Я ожидаю, что программа примет имя рассматриваемого файла изображения и вернет объект Image.Файл изображения находится в пути к классам проекта и должен быть видимым.