JAVA下載URL所對應的資源文件

經過代碼下載「http://www.baidu.com/img/bd_logo1.png」對應的圖片文件java

package guwen;

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 DownUrl {
    public static void main(String[] args) throws IOException {
        String link = "http://www.baidu.com/img/bd_logo1.png";
        // new一個URL對象
        URL url = new URL(link);
        // 打開連接
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        // 設置請求方式爲"GET"
        conn.setRequestMethod("GET");
        // 超時響應時間爲5秒
        conn.setConnectTimeout(5 * 1000);
        //可經過 contentType 得知資源的類型
        String contentType = conn.getContentType();
        System.out.println("contentType: "+contentType);
        // 經過輸入流獲取文件數據
        InputStream inStream = conn.getInputStream();
        // 獲得資源的二進制數據,以二進制封裝獲得數據,具備通用性
        ByteArrayOutputStream outStream = new ByteArrayOutputStream();
        // 建立一個Buffer字符串
        byte[] buffer = new byte[1024];
        // 每次讀取的字符串長度,若是爲-1,表明所有讀取完畢
        int len = 0;
        // 使用一個輸入流從buffer裏把數據讀取出來
        while ((len = inStream.read(buffer)) != -1) {
            // 用輸出流往buffer裏寫入數據,中間參數表明從哪一個位置開始讀,len表明讀取的長度
            outStream.write(buffer, 0, len);
        }
        // 關閉輸入流
        inStream.close();
        // 把outStream裏的數據寫入內存
        byte[] data = outStream.toByteArray();
        // new一個文件對象用來保存文件,或者傳入數據庫等
        String savePath = "D://file";
        File file = new File(savePath);
        String parentStr = file.getParent();
        File parentFlie = new File(parentStr);
        if (!parentFlie.exists()) {
            parentFlie.mkdirs();
        }
        // 建立輸出流
        FileOutputStream FileOutStream = new FileOutputStream(file);
        // 寫入數據
        FileOutStream.write(data);
        // 關閉輸出流
        FileOutStream.close();
        
    }
}

運行後。圖片將會被下載到電腦的 C 盤名爲file的文件。數據庫

相關文章
相關標籤/搜索