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¢er="+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(); }
原文:https://www.cnblogs.com/xiejn/p/14205825.html