當在Java程式中使用ImageIO.read(File file)
讀取指定路徑的圖片時發生錯誤如下。
BufferedImage image = ImageIO.read(new File("/img/001.png"));
javax.imageio.IIOException: Can't read input file!
錯誤原因是找不到圖片。在Java網路應用程式(Web app)的ContextPath和檔案路徑(file path)是不同的東西,而File
傳入的是檔案路徑。
當你把圖片放在IDE(eclipse)專案的webapp/img/001.png
,實際上部屬後運行時的檔案位置是在Tomcat中(開發時可能或在Eclipse的workspace下,依Server的設定而定),所以在runtime圖片的位置實際上是在
[workspace]\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\[project_name]\img
,但new File("img/001.png")
的圖片位置其實是C:\img\001.png
,所以就找不到圖片而導致錯誤。
參考:
沒有留言:
張貼留言