2012-07-31 152 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();