国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專(zhuān)注于服務(wù)器技術(shù)及軟件下載分享
分類(lèi)導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

香港云服务器
服務(wù)器之家 - 編程語(yǔ)言 - JAVA教程 - 命令行使用支持?jǐn)帱c(diǎn)續(xù)傳的java多線程下載器

命令行使用支持?jǐn)帱c(diǎn)續(xù)傳的java多線程下載器

2019-11-07 14:37java教程網(wǎng) JAVA教程

java命令行下載器,支持?jǐn)帱c(diǎn)續(xù)傳下載,多線程下載,需要的朋友可以參考下

代碼如下:

package org.load.download;

 

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.RandomAccessFile;
import java.text.DecimalFormat;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;

public class Download {
 public static void main(String[] args) {
  new Thread(new D("http://www.jfrwli.cn/200812/tools/HA_LeapFTP.rar"))
    .start();

  new Thread(
    new D(
      "http://www.jfrwli.cn/200812/tools/HA_LeapFTP.rar"))
    .start();
 }
}

class D implements Runnable {
 private static final String PATH = "E:\\download";
 private String url;
 private String fileName = null;

 static {
  if (!new File(PATH).exists()) {
   new File(PATH).mkdirs();
  }
 }

 public D(String url) {
  this.url = url;
  this.fileName = this.url.substring(this.url.lastIndexOf('/') + 1,
    this.url.length()); // 得到文件名
 }

 public void download() throws ClientProtocolException, IOException {
  final RandomAccessFile file = new RandomAccessFile(this.PATH + File.separator
    + this.fileName, "rw");

  HttpClient client = new DefaultHttpClient();
  HttpGet get = new HttpGet(this.url);

//  client.getParams().setParameter("http.socket.timeout", 5000); // 設(shè)置連接超時(shí)

  long localFileSize = this.getLocalFileSize();
  final long remoteFileSize = this.getRemoteFileSize();

  // 如果本地文件未下載完成,則斷點(diǎn)下載
  if (-1 != localFileSize && -1 != remoteFileSize
    && localFileSize < remoteFileSize) {
   file.seek(localFileSize); // 本地標(biāo)記
   get.addHeader("Range", "bytes=" + localFileSize + "-"
     + remoteFileSize); // 遠(yuǎn)程標(biāo)記
  }

  // 如果本地文件大小大于等于遠(yuǎn)程文件,則已經(jīng)下載完成
  if (-1 != localFileSize && localFileSize >= remoteFileSize) {
   return;
  }

  // 開(kāi)始下載
  HttpResponse response = client.execute(get);
  if (300 >= response.getStatusLine().getStatusCode()) {
   HttpEntity en = response.getEntity();
   InputStream in = en.getContent();
   byte[] by = new byte[512];
   int len = -1;

   // 顯示進(jìn)度
   new Thread(new Runnable(){
    @Override
    public void run() {
     try {
      while (file.length() < remoteFileSize) {
//       Runtime.getRuntime().exec("cmd cls");  // 聽(tīng)說(shuō)會(huì)另起個(gè)進(jìn)程
       System.out.println(fileName
         + "已下載:\t"
         + new DecimalFormat("0.00%").format(file
           .length() / (double) remoteFileSize));
       Thread.sleep(5000);
      }
     } catch (IOException e) {
      e.printStackTrace();
     } catch (InterruptedException e) {
      e.printStackTrace();
     }
    }
   }).start();

   // 開(kāi)始下載
   while (-1 != (len = in.read(by))) {
    file.write(by, 0, len);
   }

   in.close();
   client.getConnectionManager().shutdown();
  }
 }

 // 得到本地文件大小
 private long getLocalFileSize() {
  File file = new File(PATH + File.separator + this.fileName);
  if (!file.exists()) {
   return -1l;
  }

  return file.length();
 }

 // 得到遠(yuǎn)程文件大小
 private long getRemoteFileSize() throws ClientProtocolException,
   IOException {
  HttpClient client = new DefaultHttpClient();
  HttpGet get = new HttpGet(this.url);
  client.getParams().setParameter("http.socket.timeout", 5000);
  HttpResponse response = client.execute(get);
  if (200 == response.getStatusLine().getStatusCode()
    || 300 >= response.getStatusLine().getStatusCode()) {
   HttpEntity en = response.getEntity();
   return en.getContentLength();
  }
  return -1l;
 }

 @Override
 public void run() {
  try {
   download();
   System.out.println(this.fileName + "\t下載完成");
  } catch (ClientProtocolException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
 }
}

 

延伸 · 閱讀

精彩推薦
311
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 黑人av | 欧美一区二区免费在线观看 | 这里只有久久精品 | 国产激情在线 | 日韩免费av一区二区 | 国产日韩欧美在线观看 | 成人免费在线观看视频 | 岛国搬运工av在线播放 | 成人av一区二区三区 | 国产淫片在线观看 | 亚洲一区二区国产 | 日韩欧美一区二区三区 | 一区二区免费视频 | 色综合成人 | 爱爱免费视频网站 | 韩日在线观看视频 | 久久草视频 | 亚洲成人一区二区在线观看 | 色爱综合网 | 有码一区 | 欧美激情综合五月色丁香小说 | 国产精品三级视频 | 精品一区二区av | 尤物视频在线观看 | 91短视频版在线观看www免费 | 亚洲一区中文字幕 | 亚洲电影在线观看 | 毛片免费观看 | 自拍偷拍视频网站 | 国产在线精品一区二区 | 久久国产精品久久久久久 | 99久久久成人国产精品 | 欧美综合一区 | 精品国产乱码久久久久久密桃99 | 国产午夜视频 | 爱干视频| 久久免费精品国产 | 欧美精品久久久久 | yw193.com尤物在线| 亚洲wu码 | 欧美性猛交一区二区三区精品 |