ImageIO.write缓存了吗?

时间:2010-07-08 13:56:12

标签: java javax.imageio

我应该写

BufferedOutputStream os = new BufferedOutputStream(new FileOutputStream(file));
ImageIO.write(im, "JPEG", os);

而不是

ImageIO.write(im, "JPEG", file);

即。是默认缓冲的ImageIO文件操作吗?

谢谢!

3 个答案:

答案 0 :(得分:1)

如果传入File,底层实现将直接写入RandomAccessFile(在"rw"模式下创建),因此不进行缓冲。具体而言,FileImageOutputStream将用作ImageOutputStream

答案 1 :(得分:0)

我认为这取决于我认为是系统相关的IIORegistry的具体实现。

我希望它能被缓冲,但我想你可以选择第一个完全确定的选项。

答案 2 :(得分:0)

您需要使用BufferedOutputStream(如前面提到的1中所述)。

默认情况下,ImageIo.write不会缓冲。这取决于你在论证中传递给它的东西。如果File对象被传递,它将不会被缓冲写入。