这个调用是否应该被阻塞,因为它保证在它执行之后“所有”流已经被读取?
BufferedImage image = ImageIO.read(inputStream);
假设上述情况,我正在使用位于调用ImageIO.read()
参数和“真实”源(例如 FileInputStream)之间的 FilterInputStream,但似乎存在一些竞争条件 - 难以重现。有时,在语句执行后,流似乎只消耗了一半。
还有第二个相关的疑问:“所有”图像流的定义可能是模棱两可的,例如考虑 PNG 图像,在像素数据之后可以有一些额外的元数据(在指示图像流真正结束的 IEND 块之前)。我是否可以期望它ImageIO.read()
会读取(除了竞争条件)所有图像,还是该方法仅消耗获取像素值所需的内容?