2012-07-31 120 views
0

我试图从互联网上下载的图像,并使用下面的方法将其保存到一个文件:保存下载图像到文件

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 problemsImageIO.read可以通过使用来解决:

Image image = Toolkit.getDefaultToolkit().createImage(url); 

改为读取图像。但是,我不能使用ImageIO.write将图像保存到文件,因为第一个参数必须是RenderedImage

有没有办法将Image(而不是BufferedImage)保存到文件?

+0

文件是一个文件,图像或不是,你不能只读它作为一个流,并保存它,我失去了什么。有关它的价值,请参阅下面的回复。 – 2012-07-31 15:22:51

回答

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();