我有这段代码
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
为空并且不会抛出异常?
答案 0 :(得分:0)
documentation说,它可以为null:
作为解码提供的结果返回BufferedImage 从这些中自动选择ImageReader的InputStream 目前已注册。 InputStream包含在 ImageInputStream中。如果没有注册的ImageReader声称能够 读取结果流,返回null。 [...]