how to download image from any web page in java how to download image from any web page in java java java

how to download image from any web page in java


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


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.


   // Do you want to download an image?   // But are u denied access?   // well here is the solution.    public static void DownloadImage(String search, String path) {    // This will get input data from the server    InputStream inputStream = null;    // This will read the data from the server;    OutputStream outputStream = null;    try {        // This will open a socket from client to server        URL url = new URL(search);       // This user agent is for if the server wants real humans to visit        String USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36";       // This socket type will allow to set user_agent        URLConnection con = url.openConnection();        // Setting the user agent        con.setRequestProperty("User-Agent", USER_AGENT);        // Requesting input data from server        inputStream = con.getInputStream();        // Open local file writer        outputStream = new FileOutputStream(path);        // Limiting byte written to file per loop        byte[] buffer = new byte[2048];        // Increments file size        int length;        // Looping until server finishes        while ((length = inputStream.read(buffer)) != -1) {            // Writing data            outputStream.write(buffer, 0, length);        }    } catch (Exception ex) {        Logger.getLogger(WebCrawler.class.getName()).log(Level.SEVERE, null, ex);     }     // closing used resources     // The computer will not be able to use the image     // This is a must     outputStream.close();     inputStream.close();}