91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java如何下載網絡文件

發布時間:2020-12-01 09:50:18 來源:億速云 閱讀:390 作者:小新 欄目:編程語言

這篇文章主要介紹java如何下載網絡文件,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

下載網絡文件的方法有:

  • 字節流下載

  • apache的FileUtils工具包下載

  • NIO下載

學習視頻分享:java教學視頻

實現代碼如下:

package com.dsp.rpc.metricelf;
 
import org.apache.commons.io.FileUtils;
 
import java.io.File;
import java.net.HttpURLConnection;
import java.net.URL;
 
 
public class DownloadZipUtil {
 
    /**
     * FileUtils下載網絡文件
     *
     * @param serverUrl   :網絡文件地址
     * @param savePath:本地保存路徑
     * @param zipSavePath :壓縮文件保存路徑
     * @return
     */
    public static String downloadFile(String serverUrl, String savePath, String zipSavePath) throws Exception {
        String result;
        File f = new File(savePath);
        if (!f.exists()) {
            if (!f.mkdirs()) {
                throw new Exception("makdirs: '" + savePath + "'fail");
            }
        }
        URL url = new URL(serverUrl);
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setConnectTimeout(3 * 1000);
        //防止屏蔽程序抓取而放回403錯誤
        conn.setRequestProperty("User-Agent", "Mozilla/4.0(compatible;MSIE 5.0;Windows NT;DigExt)");
        Long totalSize = Long.parseLong(conn.getHeaderField("Content-Length"));
        if (totalSize > 0) {
            FileUtils.copyURLToFile(url, new File(zipSavePath));
            result = "success";
        } else {
            throw new Exception("can not find serverUrl :{}" + serverUrl);
        }
        return result;
    }
 
 /**
     * 字節流下載壓縮文件
     * @param serverUrl :網絡地址
     * @param savePath :保持路徑
     * @param zipSavePath :壓縮文件保持路徑
     * @return :下載結果
     * @throws Exception :異常
     */
    public static String downloadZip(String serverUrl,String savePath,String zipSavePath) throws Exception{
        String result = "fail";
        File f = new File(savePath);
        if(!f.exists()){
            if (!f.mkdirs()) {
                throw new Exception("makdirs: '" + savePath + "'fail");
            }
        }
        //Sardine是WebDAV的工具包
        Sardine sardine = SardineFactory.begin("test","test");
        if(sardine.exists(serverUrl)){
            URL url = new URL(serverUrl);
            URLConnection conn = url.openConnection();
            int length = conn.getContentLength();
            conn.setConnectTimeout(3 * 1000);
            // 防止屏蔽程序抓取而返回403錯誤
            conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
            InputStream is = sardine.getInputStream(serverUrl);
            BufferedInputStream bis = new BufferedInputStream(is);
            FileOutputStream fos = new FileOutputStream(zipSavePath);
            BufferedOutputStream bos = new BufferedOutputStream(fos);
            int len;
            byte[] bytes = new byte[length/5];
            while ((len = bis.read(bytes)) != -1) {
                bos.write(bytes, 0, len);
            }
            //清除緩存
            bos.flush();
            //關閉流
            fos.close();
            is.close();
            bis.close();
            bos.close();
            result = "success";
 
        }else {
             throw new Exception("can not find file");
        }
        return result;
    }
 
 
 
}

以上是“java如何下載網絡文件”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

武穴市| 保靖县| 射阳县| 南涧| 罗田县| 安福县| 新巴尔虎右旗| 安塞县| 张北县| 滁州市| 黄山市| 万安县| 新巴尔虎左旗| 邓州市| 义乌市| 木兰县| 邯郸县| 赤水市| 文水县| 河北省| 奉节县| 武强县| 青河县| 上饶县| 县级市| 太和县| 绿春县| 定州市| 锡林郭勒盟| 兴仁县| 达尔| 台中市| 乌审旗| 万年县| 孙吴县| 耒阳市| 德兴市| 桦川县| 文水县| 巴彦淖尔市| 五寨县|