- 在Java/Grails中,从文件读取图像到BufferedImage的最快方法是什么?
- 在Java/Grails中,将BufferedImage写入文件的最快方法是什么?
我的翻译(read):
byte [] imageByteArray = new File(basePath+imageSource).readBytes()
InputStream inStream = new ByteArrayInputStream(imageByteArray)
BufferedImage bufferedImage = ImageIO.read(inStream)
我的变量(写):
BufferedImage bufferedImage = // some image
def fullPath = // image page + file name
byte [] currentImage
try{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write( bufferedImage, "jpg", baos );
baos.flush();
currentImage = baos.toByteArray();
baos.close();
}catch(IOException e){
System.out.println(e.getMessage());
}
}
def newFile = new FileOutputStream(fullPath)
newFile.write(currentImage)
newFile.close()
java.nio.file.Files
和java.nio.file.Paths
。 - Sotirios DelimanolisFileInputStream
将会产生大量IO操作系统调用来从磁盘读取数据。通过缓存,您可以读取比所需更多的数据,以便减少对磁盘的调用次数。在这种情况下,这是有意义的,因为您最终将读取整个文件。 - Sotirios DelimanolisBufferedOutputStream
以同样的方式。 - Sotirios Delimanolis