Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将下载的图像保存到文件_Java_Image - Fatal编程技术网

Java 将下载的图像保存到文件

Java 将下载的图像保存到文件,java,image,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, 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;
}
但是,我可以使用
ImageIO.read
读取,这可以通过以下方法解决:

Image image = Toolkit.getDefaultToolkit().createImage(url);
改为阅读图像。但是,我不能使用
ImageIO.write
将图像保存到文件中,因为第一个参数必须是
renderimage


有没有办法将
图像
(与
缓冲图像
)保存到文件中?

文件是一个文件,图像与否,您不能将其作为流读取并保存,我缺少什么。关于它的价值,请看我下面的回复。一个文件就是一个文件,不管是不是图像,你不能把它读成一个流,然后保存它,我缺少什么。关于它的价值,请看下面我的回答。
        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();