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 FilesUtil {
/**
* 从网络Url中下载文件
* @param urlStr
* @param fileName
* @param savePath
* @throws IOException
*/
public static void downLoadFromUrl(String urlStr,String fileName,String savePath) throws IOException{
URL url = new URL(urlStr);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
//设置超时间为3秒
//conn.setConnectTimeout(3*1000);
//防止屏蔽程序抓取而返回403错误
conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
conn.setRequestMethod("GET");
conn.setConnectTimeout(5000);
conn.setReadTimeout(5000);
conn.connect();
int code=conn.getResponseCode();
if(code==200){
//得到输入流
InputStream inputStream = conn.getInputStream();
//获取自己数组
byte[] getData = readInputStream(inputStream);
//文件保存位置
File saveDir = new File(savePath);
if(!saveDir.exists()){
saveDir.mkdir();
}
File file = new File(saveDir+File.separator+fileName);
FileOutputStream fos = new FileOutputStream(file);
fos.write(getData);
if(fos!=null){
fos.close();
}
if(inputStream!=null){
inputStream.close();
}
System.out.println("info:"+url+" download success");
}
}
/**
* 从输入流中获取字节数组
* @param inputStream
* @return
* @throws IOException
*/
public static byte[] readInputStream(InputStream inputStream) throws IOException {
byte[] buffer = new byte[1000000];
int len = 0;
ByteArrayOutputStream bos = new ByteArrayOutputStream();
while((len = inputStream.read(buffer)) != -1) {
bos.write(buffer, 0, len);
}
bos.close();
return bos.toByteArray();
}
public static void main(String[] args) {
try{
downLoadFromUrl("https://www.baidu.com/link?url=43hFnnxpGyg-_QNB1yk5gI09RQHvC44WRYIl5V0vmb5-DfsxjEM_90McVKbSpvSuy8ZBFIFnZ08vSf0pvbEhYtaBK9ZcNaHQ51I4K56dflwhW7MW9Y0Rdj_uc_fwncwTc5e-g-wzYd6K8qvjIAzlgZIz0obDofXblijEpzLGhixSbr1KLiqIZx1RluknCZFNEehEL37ulURPWfC6qdvHWtOiQIF5VNaN7OuDbMW4qRCSrF3WDKHYOQlcQSa8QrEK5lmU9pQntQ4mdtLXZE5DuGo34pJhMIp7GNSAL_052ac3emzqu8BDxdFPFySm1veIqs2qsA5YMDn2LqYg8UsHqQlmByRRk29dY6er-h28ULLInaCOqoE2fq3GWSVGboXo0plfeQu4GMqe6hykR_qLSUgL8XpjpP1OY7bi_W8dTgjR4hFG4TbyfmY0f1TVWQ7Gq8JBqUYXlUcZJ1fKOmz97TlLbRLLjHhU4p1aHaicNod8dU8x4HUvzvxa1sQbP8N4yuKlJIu6x2qWU3MAWm9PJcZyG38Q6OpicdxZKRUQ4P2OewTNM_LDQFSkNJthvE2Nte5rlVDfe2T_rDwmc1eyGv290dGWU4XJ1uRMD7sOlGRyU2a14LEIvhkkNQNDQ3keYeJTh7R8Tv0stX5CGN_lXpRpjkQnzqo8mU7NyhTf8Ga&timg=&click_t=1554394992622&s_info=1349_637&wd=&eqid=9c465c9800003af2000000035ca56810",
"5000.jpg","d:/resource/images/diaodiao/country/");
}catch (Exception e) {
// TODO: handle exception
}
}
}
转载于:https://blog.51cto.com/7218743/2374007