新的 URL().openSteam() 方法 returns 传递给 ImageIO 时为 null

new URL().openSteam() method returns null when passed to ImageIO

目前正在尝试通过提供 URL().openStream().

InputSteam 传递给 Java 的 ImageIO
val sourceIO = new URL(fileName).openStream()
val bufferedImage = ImageIO.read(sourceIO)

我正在测试大约 100 张不同的图像。我知道每个图像都存在,因为当我将相同的输入流传递给不同的类时,它工作得很好。但是,ImageIO 一直抱怨流为空:java.lang.IllegalArgumentException: input == null!

我怀疑某些东西没有正确初始化。知道如何解决这个问题吗?谢谢!

发现问题。这实际上是因为我使用 val sourceIO 假设输入流是可重用的。通过将 val 更改为 def,我能够将新的输入流传递给 ImageIO 对象。

注意:这无法正常工作,因为 sourceIO 在传递给 ImageIO 之前已经被引用,因此流为空。