2009-10-14 7 views
2

오류 : 처리되지 않은 예외 유형 IOException.File에서 BufferedImage로 변경하는 동안 IOException이 발생했습니다.

File imgLoc = new File("player.png"); 
BufferedImage img = ImageIO.read(imgLoc); 

파일 위치에서 bufferedImage를 얻으려면 어떻게해야합니까?

+1

경로가 맞습니까? ImageIO.read()를 수행하기 전에 존재 여부를 확인하기 위해 imgLoc에서 exists()를 호출 해보십시오. – Matt

+1

stacktrace를 게시 할 수 있습니까? 파일이 실제로 유효한 PNG입니까? –

답변

6

문제의 원인은 가장 예외의 스택 트레이스를 검사에 의해 결정된다.

임시 조치로, 다음과 같이 두 줄을 바꿉니다

File imgLoc = new File("player.png"); 
BufferedImage img; 
try { 
    img = ImageIO.read(imgLoc); 
} catch (IOException ex) { 
    System.err.println(ex.getMessage()); 
    ex.printStackTrace(); 
    throw ex; 
} 

가 표준 오류로 일부 진단을 보낼 수 있습니다. 수정 된 응용 프로그램을 실행하고 결과 출력을 게시하십시오.

가능한 원인은 다음과 같습니다

  • 파일 이름이 잘못,
  • 파일이 응용 프로그램의 현재 디렉토리에없는,
  • 파일로 인해 운영 시스템 액세스 제어에 응용 프로그램에 의해 읽을 수 없습니다 ,
  • 파일을 읽을 수 있지만 형식이 잘못되어 있습니다 (
  • 등).