1. 程式人生 > >獲取遠端圖片儲存到本地

獲取遠端圖片儲存到本地

廢話不多,程式碼放上,菜鳥記錄,僅供參考
package com.wx.util;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
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 HttpURLConnectionUtil {
        // 通過get請求得到讀取器響應資料的資料流
    public static InputStream getInputStreamByGet(String url) {
        try {
            HttpURLConnection conn = (HttpURLConnection) new URL(url)
                    .openConnection();
            conn.setReadTimeout(5000);
            conn.setConnectTimeout(5000);
            conn.setRequestMethod("GET");
            if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
                InputStream inputStream = conn.getInputStream();
                return inputStream;
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
        // 將伺服器響應的資料流存到本地檔案
    public static void saveData(InputStream is, File file) {
        
        try  {
            BufferedInputStream bis = new BufferedInputStream(is);
            BufferedOutputStream bos = new BufferedOutputStream( new FileOutputStream(file));
            byte[] buffer = new byte[1024];
            int len = -1;
            while ((len = bis.read(buffer)) != -1) {
                bos.write(buffer, 0, len);
                bos.flush();
            }
            bos.close();
            
        } catch (IOException e) {
            
            e.printStackTrace();
        }
    }
}
 String url = "http://127.0.0.1:9090/bidding";+picAddr2;
             String[] split = url.split("\\/");
             String fileName = split[split.length - 1];
             File dir = new File("D:/bidding/uploads/item/2017");
             if(!dir.exists()){
                           dir.mkdirs();
             }
             File file = new File("D:/bidding/uploads/item/2017", fileName);
        InputStream inputStream = HttpURLConnectionUtil
                .getInputStreamByGet(url);
        HttpURLConnectionUtil.saveData(inputStream, file);