我正在尝试从Internet下载图像并使用以下方法将其保存到文件中:
private BufferedImage saveImageLocally(String remoteImageURL, String imageType, File localImage) {
URL url = new URL(remoteImageURL);
BufferedImage image = ImageIO.read(url);
ImageIO.write(image, imageType, localImage);
return image;
}
但是,我ran into problems ImageIO.read
可以使用以下方法解决:
Image image = Toolkit.getDefaultToolkit().createImage(url);
改为阅读图片。但是,我不能使用ImageIO.write
将图像保存到文件中,因为第一个参数必须是RenderedImage
。
有没有办法将Image
(而不是BufferedImage
)保存到文件中?
答案 0 :(得分:4)
URL url = new URL(imageUrl);
InputStream is = url.openStream();
OutputStream os = new FileOutputStream(destinationFile);
byte[] b = new byte[2048];
int length;
while ((length = is.read(b)) != -1) {
os.write(b, 0, length);
}
is.close();
os.close();