示例一:
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();
}