java-根据图片地址下载到本地

package com.tiandy.zhfz.accesszonemanage.core.utils;

import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;
import java.util.Arrays;
import java.util.List;

/**
 * @authoer: fengwen
 * @createDate: 2022/8/1 13:39
 * @description:
 */
public class FileUtils {

    public static void main(String[] args) throws Exception {


        download(Arrays.asList(
                "http://10.50.13.192:9017/image/202208011036_48080fc866df4b32951d7afd3702069f",
                "http://10.50.13.192:9017/image/202208011036_08e683a610bb4b34832aca1281560442",
                "http://10.50.13.192:9017/image/202207291750_936238a2d8dd4250a844843aa1f8d6cc"));

    }

    public static final String savePath = "/home/apps/plugins/TdPluginAccessZoneManage/web/download/";
//    public static final String savePath = "D://image";
    public static final String fileType = ".png";

    public static void download(List urlStringList) {
        OutputStream os = null;
        InputStream is = null;
        try {
            for (Object urlStringObj : urlStringList) {
                String urlString = (String) urlStringObj;
                // 构造URL
                URL url = new URL(urlString);
                // 打开连接
                URLConnection con = url.openConnection();
                //设置请求超时为5s
                con.setConnectTimeout(5 * 1000);
                // 输入流
                is = con.getInputStream();
                // 1K的数据缓冲
                byte[] bs = new byte[1024];
                // 读取到的数据长度
                int len;
                // 路径
                String filename = urlString.substring(urlString.lastIndexOf("/"));
//                System.out.println(filename);
//                String str = urlString.split(filename)[0];
//                System.out.println(str);
//                String[] split = str.split("//");
//                int i = split[1].indexOf("/");
//                String substring = split[1].substring(i);
//                System.out.println(substring);

                // 输出的文件流
                File sf = new File(savePath);
                if (!sf.exists()) {
                    sf.mkdirs();
                }
                os = new FileOutputStream(sf.getPath() + filename+fileType);
                // 开始读取
                while ((len = is.read(bs)) != -1) {
                    os.write(bs, 0, len);
                }
//                System.out.println("下载完成");
            }
            // 完毕,关闭所有链接
            os.close();
            is.close();
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            try {
                if(null != os){
                    os.close();
                }
                if(null != is){
                    is.close();
                }
            }catch (Exception e){
                e.printStackTrace();
            }
        }

    }

}

参考:

经验分享 程序员 微信小程序 职场和发展