2013-02-22 4 views
0

Эй, я сейчас пытаюсь прочитать содержимое байта изображения в байтовый массив в java, но can not, кажется, открыть изображение из файла. Консоль бросает это исключение:Image.IO can not read input file - Java

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException 

Это здесь линию в вопросе:

BufferedImage im = 
    ImageIO.read(
     new File(
     getClass().getResource("/Images/default_pic.png").toURI())); 

Мои пакеты выглядеть следующим образом:

-UI 
    -Class //code getting image here 
-UI.Images 
    -default_pic.png 
+0

сообщение как ответ ... – vikingsteve

+0

Самый простой способ для отладки проблемы разрешения имен необходимо установить точку останова на вашем 'ImageIO.read()' и попробовать множество разных путей до 'getResource()' или 'getResourceAsStream() 'возвращает что-то ненулевое. Вы можете просто изменить код во время ожидания отладчика, затем выберите метод getClass(). GetResource() 'и щелкните правой кнопкой мыши« Осмотреть », чтобы увидеть значение. В общем, разрешение имен Java является непредсказуемым и ненадежным - для него нет реальных правил, поэтому вам просто нужно изучить возможности пробной ошибки, пока вы не попадете в точку. –

ответ

1

Вы можете попробовать это:

BufferedImage im = ImageIO.read(getClass().getClassLoader().getResourceAsStream("/Images/default_pic.png")) 
+0

Благодарим вас за ответ. После проверки кода я получил «java.lang.IllegalArgumentException: input == null!» исключение – user1851487

+0

Где находится ваше изображение? src/main/resources/Я считаю, что изображения будут правильными. Также проверьте свое изображение .png, а не .PNG ... – vikingsteve

+0

изображение находится в src/UI/Images – user1851487

2

Каталог UI отсутствует в вашем пути, я предлагаю:

BufferedImage im = 
    ImageIO.read(
     getClass().getClassLoader().getResourceAsStream(
     "/UI/Images/default_pic.png")); 
+0

спасибо за ответ, попробовав свой, я также получил java.lang.IllegalArgumentException: input == null! исключение – user1851487