通過網路地址下載圖片示例
阿新 • • 發佈:2020-12-29
示例一:
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) throwsException { 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(); }