zoukankan      html  css  js  c++  java
  • how to download image from any web page in java 下载图片

    http://stackoverflow.com/questions/5882005/how-to-download-image-from-any-web-page-in-java

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

    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();
    shareimprove this answer
     
    2  
    For Java7 modify the code snippet to use the try-with-resources statement, seedocs.oracle.com/javase/tutorial/essential/exceptions/… – Gonfi den Tschal Jul 7 '13 at 1:18

    You are looking for a web crawler. You can use JSoup to do this, here is basic example

    shareimprove this answer
     

    It works for me)

    URL url = new URL("http://upload.wikimedia.org/wikipedia/commons/9/9c/Image-Porkeri_001.jpg");
    InputStream in = new BufferedInputStream(url.openStream());
    OutputStream out = new BufferedOutputStream(new FileOutputStream("Image-Porkeri_001.jpg"));
    
    for ( int i; (i = in.read()) != -1; ) {
        out.write(i);
    }
    in.close();
    out.close();
    shareimprove this answer
     

    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.

    shareimprove this answer
     

    The following code downloads an image from a direct link to the disk into the project directory. Also note that it uses try-with-resources.

    import java.io.BufferedInputStream;
    import java.io.BufferedOutputStream;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.net.MalformedURLException;
    import java.net.URL;
    
    import org.apache.commons.io.FilenameUtils;
    
    public class ImageDownloader
    {
        public static void main(String[] arguments) throws IOException
        {
            downloadImage("https://upload.wikimedia.org/wikipedia/commons/7/73/Lion_waiting_in_Namibia.jpg",
                    new File("").getAbsolutePath());
        }
    
        public static void downloadImage(String sourceUrl, String targetDirectory)
                throws MalformedURLException, IOException, FileNotFoundException
        {
            URL imageUrl = new URL(sourceUrl);
            try (InputStream imageReader = new BufferedInputStream(
                    imageUrl.openStream());
                    OutputStream imageWriter = new BufferedOutputStream(
                            new FileOutputStream(targetDirectory + File.separator
                                    + FilenameUtils.getName(sourceUrl)));)
            {
                int readByte;
    
                while ((readByte = imageReader.read()) != -1)
                {
                    imageWriter.write(readByte);
                }
            }
        }
    }
  • 相关阅读:
    eclipse对项目Working Sets整理分类
    word中visio只显示边框,不显示内容解决
    使用WebStorm运行vue项目
    如何提高你的学习速度-超链接式学习法
    SQL中的join连接查询
    TCP的三次握手
    Tomcat 实现热部署
    Linux下软件设成系统服务运行
    Redis服务器搭建
    nginx.conf完整配置实例
  • 原文地址:https://www.cnblogs.com/donaldlee2008/p/5281965.html
Copyright © 2011-2022 走看看