通过网络地址下载图片示例

示例一:

package com.xieh;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

public class TestDownLoad {

    public static void main(String[] args) throws Exception {
        URL url = new URL("https://pic.cnblogs.com/avatar/1862411/20200610010655.png");
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        InputStream fin = conn.getInputStream();
        byte[] data = readInputStream(fin);
        File file = new File("D:" + File.separator + "1110.png");
        FileOutputStream fos = new FileOutputStream(file);
        fos.write(data);
        if (fos != null) {
            fos.close();
        }
        if (fin != null) {
            fin.close();
        }
        System.out.println("success");

    }

    private static byte[] readInputStream(InputStream inputStream) throws IOException {
        byte[] buffer = new byte[1024];
        int len = 0;
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        while ((len = inputStream.read(buffer)) != -1) {
            bos.write(buffer, 0, len);
        }
        bos.close();
        return bos.toByteArray();
    }

}

示例二:

调用百度地图根据经纬度截图并保存

download("http://api.map.baidu.com/staticimage?width=400&height=300&center="+project.getLongitude()+","+project.getLatitude()+"&zoom=11", businessId+".jpg",request.getSession().getServletContext().getRealPath("")+"/userfiles/assess/"+businessId+"/doc");

public static void download(String urlString, String filename, String savePath) throws Exception {
        // 构造URL
        URL url = new URL(urlString);
        // 打开连接
        URLConnection con = url.openConnection();
        // 设置请求超时为5s
        con.setConnectTimeout(5 * 1000);
        // 输入流
        InputStream is = con.getInputStream();

        // 1K的数据缓冲
        byte[] bs = new byte[1024];
        // 读取到的数据长度
        int len;
        // 输出的文件流
        File sf = new File(savePath);
        if (!sf.exists()) {
            sf.mkdirs();
        }
        OutputStream os = new FileOutputStream(sf.getPath() + "/" + filename);
        // 开始读取
        while ((len = is.read(bs)) != -1) {
            os.write(bs, 0, len);
        }
        // 完毕,关闭所有链接
        os.close();
        is.close();
    }

猜你喜欢

转载自blog.csdn.net/qq_41995919/article/details/111889628