package com.xiaobu.util;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
/**
* @author xiaobu
* @version JDK1.8.0_171
* @date on 2019/4/6 22:19
* @description V1.0
*/
public class DownloadFolder {
public static void main(String[] args) {
//http://www.cicicaseshop.com/images/upload/Image/cici2250/1.jpg
String url = "http://www.cicicaseshop.com/images/upload/Image/cici2250/1.jpg";
String fileName = url.substring(url.lastIndexOf("/"));
System.out.println("fileName---->" + fileName);
String filePath = "d:";
File file = getFile(url, filePath + fileName, "GET");
System.out.println(file);
}
public static File getFile(String url, String filePath, String method) {
//建立不同的檔案夾目錄
File file = new File(filePath);
//判斷檔案夾是否存在
if (!file.exists()) {
//如果檔案夾不存在,則建立新的的檔案夾
//file.mkdirs();
//如果檔案不存在,則建立新的的檔案
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
FileOutputStream fileOut = null;
HttpURLConnection conn = null;
InputStream inputStream = null;
try {
// 建立連結
URL httpUrl = new URL(url);
conn = (HttpURLConnection) httpUrl.openConnection();
//以Post方式送出表單,預設get方式
conn.setRequestMethod(method);
conn.setDoInput(true);
conn.setDoOutput(true);
// post方式不能使用緩存
conn.setUseCaches(false);
//連接配接指定的資源
conn.connect();
//擷取網絡輸入流
inputStream = conn.getInputStream();
BufferedInputStream bis = new BufferedInputStream(inputStream);
//判斷檔案的儲存路徑後面是否以/結尾
if (!filePath.endsWith("/")) {
filePath += "/";
}
System.out.println(filePath);
//寫入到檔案(注意檔案儲存路徑的後面一定要加上檔案的名稱)
//fileOut = new FileOutputStream(filePath+"db.xml");
//寫入到檔案(已經加了檔案名)
fileOut = new FileOutputStream(filePath);
BufferedOutputStream bos = new BufferedOutputStream(fileOut);
byte[] buf = new byte[4096];
int length = bis.read(buf);
//儲存檔案
while (length != -1) {
bos.write(buf, 0, length);
length = bis.read(buf);
}
bos.close();
bis.close();
conn.disconnect();
} catch (Exception e) {
e.printStackTrace();
System.out.println("抛出異常!!");
}
return file;
}
}