ImageIO.read() 拋出 IIOException 或返回 null,通常因:
File file = new File(path);
System.out.println("絕對路徑: " + file.getAbsolutePath());
System.out.println("存在: " + file.exists());
System.out.println("是文件: " + file.isFile());
System.out.println("可讀: " + file.canRead());
System.out.println("長度: " + file.length());
若 exists() 為 false,檢查路徑拼接邏輯;若為 true 但 read() 失敗,嘗試 ImageIO.read(new FileInputStream(file)) 排除文件鎖定問題。
ClassLoader.getResourceAsStream() 讀取 classpath 下資源(打包後也生效)。IOException 並記錄詳細路徑信息,便於生產環境定位。