zoukankan      html  css  js  c++  java
  • 通过网络地址下载图片示例

    示例一:

    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();
        }
  • 相关阅读:
    windows 10 安装可视化mycat
    YYModel 源码解读(二)之NSObject+YYModel.h (1)
    NSCharacter​Set 使用说明
    YYModel 源码解读(二)之YYClassInfo.h (3)
    Cocoa深入学习:NSOperationQueue、NSRunLoop和线程安全 (转)
    Swift 必备开发库 (高级篇) (转)
    YYModel 源码解读(二)之YYClassInfo.h (2)
    YYModel 源码解读(二)之YYClassInfo.h (1)
    Runtime应用防止按钮连续点击 (转)
    YYModel 源码解读(一)之YYModel.h
  • 原文地址:https://www.cnblogs.com/xiejn/p/14205825.html
Copyright © 2011-2022 走看看