ImageIO为null,读取ByteArrayInputStream

时间:2017-01-16 11:48:53

标签: java image java-io

我有这段代码

System.out.println  ("fileData 1 -> " + fileData);

ByteArrayInputStream in = new ByteArrayInputStream(fileData);

System.out.println  ("fileData 2 -> " + in);

try {
    BufferedImage img = ImageIO.read(in);
    System.out.println  ("fileData 3 -> " + img);

....

这就是我在控制台中看到的内容:

fileData 1 -> [B@7a677c
fileData 2 -> java.io.ByteArrayInputStream@203aa8
fileData 3 -> null

为什么BufferedImage为空并且不会抛出异常?

1 个答案:

答案 0 :(得分:0)

documentation说,它可以为null:

  

作为解码提供的结果返回BufferedImage   从这些中自动选择ImageReader的InputStream   目前已注册。 InputStream包含在   ImageInputStream中。如果没有注册的ImageReader声称能够   读取结果流,返回null。 [...]