将下载的图像保存到文件

时间:2012-07-31 15:17:54

标签: java image

我正在尝试从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)保存到文件中?

1 个答案:

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