我应该写什么
BufferedOutputStream os = new BufferedOutputStream(new FileOutputStream(file));
ImageIO.write(im, "JPEG", os);
替代
ImageIO.write(im, "JPEG", file);
例如,ImageIO文件操作是否默认缓冲?谢谢!
我应该写什么
BufferedOutputStream os = new BufferedOutputStream(new FileOutputStream(file));
ImageIO.write(im, "JPEG", os);
替代
ImageIO.write(im, "JPEG", file);
File
,底层实现将直接写入一个RandomAccessFile
(以"rw"
模式创建),因此不需要缓冲。具体来说,将使用FileImageOutputStream
作为ImageOutputStream
。javax.imageio.stream.FileImageOutputStream
- kschneid我相信这取决于IIORegistry
的具体实现,我想这是与系统相关的。
我希望它被缓冲,但我想你可以选择第一种选项来确保完全确定。
您需要使用BufferedOutputStream(如问题中提到的例子1)。
ImageIo.write默认情况下不带缓冲。它取决于您在参数中传递什么。如果传递File对象,则不会进行缓冲写入。