2013-02-22 156 views
0

嘿,我目前正在嘗試讀取圖像的字節內容到Java中的字節數組,但似乎無法打開圖像從文件。問題Image.IO無法讀取輸入文件 - 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 2013-02-22 10:47:31

+0

最簡單的方法調試名稱解析問題是在你的'ImageIO.read()'上設置一個斷點,並嘗試很多不同的路徑,直到getResource()或getResourceAsStream() '返回非null的東西。您可以在調試器正在等待時更改代碼,然後選擇getClass()。getResource()方法調用,然後右鍵單擊「Inspect」查看該值。一般來說,Java名稱解析是不可預測的,也是不可靠的 - 它沒有實際的規則 - 所以你只需要通過試錯法來探索可能性,直到你到達現場。 – 2013-02-23 08:22:22

回答

1

你可以試試這個:

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

感謝您的回覆。在嘗試你的代碼後,我得到了一個「java.lang.IllegalArgumentException:input == null!」例外 – user1851487 2013-02-22 10:52:09

+0

您的圖像位於何處?我相信src/main/resources/Images是正確的。另外檢查你的圖像是.png,而不是.PNG ... – vikingsteve 2013-02-22 10:53:45

+0

圖像位於src/UI /圖像 – user1851487 2013-02-22 11:04:59

2

目錄UI在你的路徑丟失,我建議:

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

感謝您的回覆,在嘗試了你之後,我還得到了一個java.lang.IllegalArgumentException:input == null!例外 – user1851487 2013-02-22 11:37:56