2015-01-03 6 views
-1

URL().openStream()을 제공하여 InputSteam을 Java의 ImageIO에 전달하려고합니다.새 URL(). ImageIO에 전달되면 openSteam() 메서드가 null을 반환합니다.

val sourceIO = new URL(fileName).openStream() 
val bufferedImage = ImageIO.read(sourceIO) 

약 100 개의 이미지를 테스트하고 있습니다. 나는 각각의 이미지가 존재한다는 것을 안다. 왜냐하면 같은 입력 스팀을 다른 클래스에 전달할 때 잘 동작하기 때문이다. 그러나 ImageIO는 스트림이 null이라는 불평을 계속합니다. java.lang.IllegalArgumentException: input == null!

내 생각에 무언가가 제대로 초기화되지 않았습니다. 이 문제를 어떻게 해결할 수 있습니까? 감사!

답변

0

발견 된 문제. 실제로는 입력 스트림을 다시 사용할 수 있다고 가정하고 val sourceIO을 사용했기 때문입니다. valdef으로 변경하면 ImageIO 객체에 새로운 입력 스트림을 전달할 수있었습니다.

참고 : sourceIOImageIO으로 전달되기 전에 이미 참조되었으므로 스트림이 null이므로 올바르게 작동하지 않았습니다.