經過代碼下載「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的文件。數據庫