import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;
import java.util.Arrays;
import java.util.List;
class DownloadImage {
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
download(Arrays.asList(
"https://www.baidu.com/img/bd_logo1.png",
"https://www.baidu.com/img/flexible/logo/pc/result.png",
"https://www.baidu.com/img/flexible/logo/pc/result@2.png",
"https://www.baidu.com/img/flexible/logo/pc/peak-result.png"
), "D:\\新建文件夹");
}
public static void download(List urlStringList, String savePath) throws Exception {
OutputStream os = null;
InputStream is = null;
for (Object urlStringObj : urlStringList) {
String urlString = (String) urlStringObj;
// 构造URL
URL url = new URL(urlString);
// 打开连接
URLConnection con = url.openConnection();
//设置请求超时为5s
con.setConnectTimeout(5 * 1000);
// 输入流
is = con.getInputStream();
// 1K的数据缓冲
byte[] bs = new byte[1024];
// 读取到的数据长度
int len;
// 路径
String filename = urlString.substring(urlString.lastIndexOf("/"));
String str = urlString.split(filename)[0];
String[] split = str.split("//");
int i = split[1].indexOf("/");
String substring = split[1].substring(i);
// 输出的文件流
File sf = new File(savePath + substring);
if (!sf.exists()) {
sf.mkdirs();
}
os = new FileOutputStream(sf.getPath() + filename);
// 开始读取
while ((len = is.read(bs)) != -1) {
os.write(bs, 0, len);
}
System.out.println("下载完成");
}
// 完毕,关闭所有链接
os.close();
is.close();
}
}
java下载图片到指定文件夹
于 2022-05-17 00:33:50 首次发布