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


    示例一:

    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();
        }
  • 相关阅读:
    Leetcode
    287. Find the Duplicate Number hard
    House Robber III leetcode 动态规划
    将一个数组分成奇数部分和偶数部分,并分别排好序 CVTE
    First Missing Positive && missing number
    permutation II (boss出来了)
    46. Permutations 回溯算法
    字符串分割 函数实现
    Combination Sum II Combinations
    用双缓存技术优化listview异步加载网络图片
  • 原文地址:https://www.cnblogs.com/xiejn/p/14205825.html
Copyright © 2020-2023  润新知