我应该写
BufferedOutputStream os = new BufferedOutputStream(new FileOutputStream(file));
ImageIO.write(im, "JPEG", os);
而不是
ImageIO.write(im, "JPEG", file);
即。是默认缓冲的ImageIO文件操作吗?
谢谢!
答案 0 :(得分:1)
如果传入File
,底层实现将直接写入RandomAccessFile
(在"rw"
模式下创建),因此不进行缓冲。具体而言,FileImageOutputStream
将用作ImageOutputStream
。
答案 1 :(得分:0)
我认为这取决于我认为是系统相关的IIORegistry
的具体实现。
我希望它能被缓冲,但我想你可以选择第一个完全确定的选项。
答案 2 :(得分:0)
您需要使用BufferedOutputStream(如前面提到的1中所述)。
默认情况下,ImageIo.write不会缓冲。这取决于你在论证中传递给它的东西。如果File对象被传递,它将不会被缓冲写入。