how to download image from any web page in java

hi I am trying to download image from web page. I am trying to download the image from 'http://www.yahoo.com' home page. Please tell me how to pass 'http://www.yahoo.com' as a input. And on opening this web page how to fetch image from this page. Please give me java code to fetch the image from web page.


Solution 1:

try (URL url = new URL("http://www.yahoo.com/image_to_read.jpg")) {
    Image image = ImageIO.read(url);
} catch (IOException e) {
    // handle IOException
}

See javax.imageio package for more info. That's using the AWT image. Otherwise you could do:

URL url = new URL("http://www.yahoo.com/image_to_read.jpg");
InputStream in = new BufferedInputStream(url.openStream());
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] buf = new byte[1024];
int n = 0;
while (-1!=(n=in.read(buf)))
{
   out.write(buf, 0, n);
}
out.close();
in.close();
byte[] response = out.toByteArray();

And you may then want to save the image so do:

FileOutputStream fos = new FileOutputStream("C://borrowed_image.jpg");
fos.write(response);
fos.close();

Solution 2:

If you want to save the image and you know its URL you can do this:

try(InputStream in = new URL("http://example.com/image.jpg").openStream()){
    Files.copy(in, Paths.get("C:/File/To/Save/To/image.jpg"));
}

You will also need to handle the IOExceptions which may be thrown.