Java中如何實現下載多線程文件-創新互聯

創新互聯www.cdcxhl.cn八線動態BGP香港云服務器提供商,新人活動買多久送多久,劃算不套路!

創新互聯建站是一家專業提供灌南企業網站建設,專注與網站設計、做網站、H5頁面制作、小程序制作等業務。10年已為灌南眾多企業、政府機構等服務。創新互聯專業網絡公司優惠進行中。

今天就跟大家聊聊有關Java中如何實現下載多線程文件,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

Java實現多線程文件下載思路:

1、基本思路是將文件分段切割、分段傳輸、分段保存。

2、分段切割用到HttpUrlConnection對象的setRequestProperty("Range", "bytes=" + start + "-" + end)方法。

3、分段傳輸用到HttpUrlConnection對象的getInputStream()方法。

4、分段保存用到RandomAccessFile的seek(int start)方法。

5、創建指定長度的線程池,循環創建線程,執行下載操作。 

 首先,我們要先寫一個方法,方法的參數包含URL地址,保存的文件地址,切割后的文件開始位置和結束位置,這樣我們就能把分段文件下載到本地。并且這個方法要是run方法,這樣我們啟動線程時就直接執行該方法。

public class DownloadWithRange implements Runnable
  {
    private String urlLocation;

    private String filePath;

    private long start;

    private long end;

    DownloadWithRange(String urlLocation, String filePath, long start, long end)
    {
      this.urlLocation = urlLocation;
      this.filePath = filePath;
      this.start = start;
      this.end = end;
    }

    @Override
    public void run()
    {
      try
      {
        HttpURLConnection conn = getHttp();
        conn.setRequestProperty("Range", "bytes=" + start + "-" + end);

        File file = new File(filePath);
        RandomAccessFile out = null;
        if (file != null)
        {
          out = new RandomAccessFile(file, "rwd");
        }
        out.seek(start);
        InputStream in = conn.getInputStream();
        byte[] b = new byte[1024];
        int len = 0;
        while ((len = in.read(b)) != -1)
        {
          out.write(b, 0, len);
        }
        in.close();
        out.close();
      }
      catch (Exception e)
      {
        e.getMessage();
      }

    }

    public HttpURLConnection getHttp() throws IOException
    {
      URL url = null;
      if (urlLocation != null)
      {
        url = new URL(urlLocation);
      }
      HttpURLConnection conn = (HttpURLConnection) url.openConnection();
      conn.setReadTimeout(5000);
      conn.setRequestMethod("GET");

      return conn;
    }

  }

當前題目:Java中如何實現下載多線程文件-創新互聯
標題網址:http://m.kartarina.com/article14/ccgode.html

成都網站建設公司_創新互聯,為您提供商城網站搜索引擎優化、微信小程序、用戶體驗網站改版、企業網站制作

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

外貿網站制作
主站蜘蛛池模板: 国产成人无码av在线播放不卡| 狠狠噜天天噜日日噜无码| 亚洲色中文字幕无码AV| 亚洲精品无码久久久久久久| 性色AV一区二区三区无码| 国产成人精品一区二区三区无码 | 亚洲AV无码AV日韩AV网站| 无翼乌工口肉肉无遮挡无码18| 久久无码专区国产精品发布| 亚洲精品无码不卡在线播放| 日韩免费无码视频一区二区三区 | 无码中文2020字幕二区| 国产仑乱无码内谢| 无码专区国产无套粉嫩白浆内射| 亚洲成AV人在线播放无码| 成人A片产无码免费视频在线观看 成人无码AV一区二区 | 潮喷失禁大喷水无码| 久久久久久无码Av成人影院| 国产激情无码一区二区app| 亚洲国产成人精品无码区二本 | 特级无码毛片免费视频尤物| 久久久精品天堂无码中文字幕| 亚洲精品无码久久久久久| 国内精品无码一区二区三区 | 精品人妻系列无码人妻漫画| 久久国产精品无码HDAV| 高清无码视频直接看| 精品乱码一区内射人妻无码| 亚洲另类无码一区二区三区| 无码人妻精品一区二区三区东京热 | 成人免费午夜无码视频| 人妻少妇看A偷人无码电影| 亚洲日韩中文无码久久| 国产精品无码永久免费888| 国产在线精品无码二区二区| 精品无码久久久久久国产| 欧洲黑大粗无码免费| 免费无码黄十八禁网站在线观看| 亚洲精品无码不卡在线播放| 亚洲中文无码永久免费| 亚洲av成人无码网站…|