1. 程式人生 > >Java方法中 訪問url 下載連結,下載檔案

Java方法中 訪問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)"); // 得到輸入流 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[1024]; int len = 0; ByteArrayOutputStream bos = new ByteArrayOutputStream(); while ((len = inputStream.read(buffer)) != -1) { bos.write(buffer, 0, len); } bos.close(); return bos.toByteArray(); }