亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

用Java實現HTTP文件隊列下載

2020-06-01 23:31:27
字體:
來源:轉載
供稿:網友

  序言

  許多用戶可能會遇到這樣的情況:在網站上發現一個很好的資源,但是這個資源是分成了很多個文件存放的,如果想把它保存到本地,只有靠用戶點擊另存來完成保存,如果資源分了幾百甚至上千上萬,那簡直是個災難。

  在Internet上很多的資源分成多個文件存放時,它的文件命名是有一定的規則的;正因如此,我們就可以用程序來完成這個資源的完全下載。

  1. 基礎知識

  在Internet上,我們要下載網站上的某個資源,我們會獲得一個URL(Uniform Resource Locator),它是一個服務器資源定位的描述,下載的過程總是如下步驟:

步驟1:客戶端發起連接請求一個URL 步驟2:服務器解析URL,并將指定的資源返回一個輸入流給客戶 步驟3:客戶端接收輸入流,將流中的內容存到文件   2. 網絡連接的建立

  Java提供了對URL訪問和大量的流操作的的API,我們可以很容易的完成對網絡上資源的存取,下面的代碼段就完成了對一個網站的資源進行訪問:

......
destUrl="http://www.ebook.com/java/網絡編程001.zip";
url = new URL(destUrl); httpUrl = (HttpURLConnection) url.openConnection();
//連接指定的網絡資源
httpUrl.connect();
//獲取網絡輸入流
bis = new BufferedInputStream(httpUrl.getInputStream());
......

  3. 代理的訪問

  Java 中通過代理服務器訪問外網的方法已經是世人皆知的秘密了。這里就不再多描述了,訪問的Java代碼如下:

//設置代理服務器
System.getProperties().put("proxySet", "true");
System.getProperties().put("proxyHost", "10.154.134.110");
System.getProperties().put("proxyPort", "8080");

  4. 網絡資源的保存

  在上節中,我們已經獲取了指定網絡資源的輸入流,接下來我們要完成的就是讀取輸入流中的所以內容,并將其保存在文件中。 示例代碼:

......
fos = new FileOutputStream(fileName);
if (this.DEBUG)
 System.out.println("正在獲取鏈接[" + destUrl + "]的內容.../n將其保存為文件[" + fileName +"]");
//保存文件
while ( (size = bis.read(buf)) != -1)
 fos.write(buf, 0, size); ......


  上面的示例代碼就將網絡資源的內容保存到了本地指定的文件中。

  5. 代碼清單

import java.io.*;import java.net.*;import java.util.*;/** * <p>Title: 個人開發的API</p> * <p>Description: 將指定的HTTP網絡資源在本地以文件形式存放</p> * <p>Copyright: Copyright (c) 2004</p> * <p>Company: NewSky</p> * @author MagicLiao * @version 1.0 */public class HttpGet {  public final static boolean DEBUG = true;//調試用  private static int BUFFER_SIZE = 8096;//緩沖區大小  private Vector vDownLoad = new Vector();//URL列表  private Vector vFileList = new Vector();//下載后的保存文件名列表  /**   * 構造方法   */  public HttpGet() {  }  /**   * 清除下載列表   */  public void resetList() {    vDownLoad.clear();    vFileList.clear();  }  /**   * 增加下載列表項   *   * @param url String   * @param filename String   */  public void addItem(String url, String filename) {    vDownLoad.add(url);    vFileList.add(filename);  }  /**   * 根據列表下載資源   */  public void downLoadByList() {    String url = null;    String filename = null;        //按列表順序保存資源    for (int i = 0; i < vDownLoad.size(); i++) {      url = (String) vDownLoad.get(i);      filename = (String) vFileList.get(i);      try {        saveToFile(url, filename);      }      catch (IOException err) {        if (DEBUG) {          System.out.println("資源[" + url + "]下載失敗!!!");        }      }    }    if (DEBUG) {      System.out.println("下載完成!!!");    }  }  /**   * 將HTTP資源另存為文件   *   * @param destUrl String   * @param fileName String   * @throws Exception   */  public void saveToFile(String destUrl, String fileName) throws IOException {    FileOutputStream fos = null;    BufferedInputStream bis = null;    HttpURLConnection httpUrl = null;    URL url = null;    byte[] buf = new byte[BUFFER_SIZE];    int size = 0;        //建立鏈接    url = new URL(destUrl);    httpUrl = (HttpURLConnection) url.openConnection();    //連接指定的資源    httpUrl.connect();    //獲取網絡輸入流    bis = new BufferedInputStream(httpUrl.getInputStream());    //建立文件    fos = new FileOutputStream(fileName);    if (this.DEBUG) System.out.println("正在獲取鏈接[" + destUrl + "]的內容.../n將其保存為文件[" + fileName + "]");    //保存文件    while ( (size = bis.read(buf)) != -1)       fos.write(buf, 0, size);        fos.close();    bis.close();    httpUrl.disconnect();  }  /**   * 設置代理服務器   *   * @param proxy String   * @param proxyPort String   */  public void setProxyServer(String proxy, String proxyPort) {    //設置代理服務器    System.getProperties().put("proxySet", "true");    System.getProperties().put("proxyHost", proxy);    System.getProperties().put("proxyPort", proxyPort);  }  /**   * 設置認證用戶名與密碼   *   * @param uid String   * @param pwd String   */  public void setAuthenticator(String uid, String pwd) {    Authenticator.setDefault(new MyAuthenticator(uid, pwd));  }  /**   * 主方法(用于測試)   *   * @param argv String[]   */  public static void main(String argv[]) {    HttpGet oInstance = new HttpGet();try {//增加下載列表(此處用戶可以寫入自己代碼來增加下載列表)oInstance.addItem("http://www.ebook.com/java/網絡編程001.zip","./網絡編程1.zip");oInstance.addItem("http://www.ebook.com/java/網絡編程002.zip","./網絡編程2.zip");oInstance.addItem("http://www.ebook.com/java/網絡編程003.zip","./網絡編程3.zip");oInstance.addItem("http://www.ebook.com/java/網絡編程004.zip","./網絡編程4.zip");oInstance.addItem("http://www.ebook.com/java/網絡編程005.zip","./網絡編程5.zip");oInstance.addItem("http://www.ebook.com/java/網絡編程006.zip","./網絡編程6.zip");oInstance.addItem("http://www.ebook.com/java/網絡編程007.zip","./網絡編程7.zip");//開始下載oInstance.downLoadByList();    }    catch (Exception err) {      System.out.println(err.getMessage());    }  }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美性xxxx极品高清hd直播| 国产精品99久久99久久久二8| 日韩国产在线看| 亚洲热线99精品视频| 日韩美女在线播放| 久久影院资源网| 亚洲一区二区三区成人在线视频精品| 国产欧美精品一区二区三区-老狼| 另类色图亚洲色图| 久久久久久久久久久亚洲| 日本高清视频精品| 狠狠躁夜夜躁人人爽天天天天97| 亚洲精品在线看| 国产精品视频在线播放| 欧美性猛交xxxx免费看久久久| 亚洲成人在线视频播放| 国产一区视频在线| 91大神福利视频在线| 狠狠躁夜夜躁人人爽天天天天97| 孩xxxx性bbbb欧美| 欧美激情第一页xxx| 国产99视频在线观看| 欧美激情欧美激情| 97久久伊人激情网| 91在线免费网站| 91日韩在线播放| 91高清视频免费| 久久国产精品首页| 日韩免费观看网站| 97国产精品视频| 欧美电影电视剧在线观看| 国产欧美在线视频| 中文字幕综合一区| 最近2019年好看中文字幕视频| 亚洲欧美日韩天堂| 亚洲人成网站免费播放| 久热在线中文字幕色999舞| 欧美电影免费观看电视剧大全| 日韩免费观看高清| 91麻豆国产语对白在线观看| 亚洲高清色综合| 日韩av大片在线| 国内精品伊人久久| 日韩精品极品视频免费观看| 久久久日本电影| 国产精品日韩欧美综合| 精品亚洲一区二区三区| 欧洲中文字幕国产精品| 欧美在线一区二区视频| 亚洲www永久成人夜色| 久久亚洲综合国产精品99麻豆精品福利| 欧美精品久久久久久久久久| 国产91色在线| 国产精品欧美日韩| 国产成人a亚洲精品| 日韩女优人人人人射在线视频| 亚洲少妇激情视频| 欧美中文字幕第一页| 欧美专区日韩视频| 国产一区私人高清影院| 国产成人欧美在线观看| 精品福利一区二区| 亚洲久久久久久久久久| 久久久久久国产免费| 亚洲精品视频中文字幕| 97精品视频在线观看| 亚洲精品日产aⅴ| 国产亚洲精品久久久久久777| 日韩免费不卡av| 久久久精品日本| 青青精品视频播放| 福利一区福利二区微拍刺激| 欧美夫妻性生活xx| 日韩电影中文 亚洲精品乱码| 国产精品毛片a∨一区二区三区|国| 国产精品麻豆va在线播放| 亚洲精品中文字幕有码专区| 亚洲精品91美女久久久久久久| 亚洲第一二三四五区| 久久伊人精品视频| 日韩电视剧在线观看免费网站| 亚洲国产日韩欧美在线图片| 亚洲欧美另类中文字幕| 久久久国产精品x99av| 欧美日韩一区二区免费在线观看| 97视频免费在线看| 久久精品国产亚洲精品2020| 欧美理论电影在线观看| 成人国产精品免费视频| 亚洲国产精品悠悠久久琪琪| 亚洲欧美激情四射在线日| 欧美亚洲伦理www| 色综合伊人色综合网| 欧美大学生性色视频| 欧美激情在线狂野欧美精品| 精品视频久久久久久| 欧美电影在线观看完整版| 欧美亚洲国产视频小说| 国产精品久久久久久久久久免费| 久久艳片www.17c.com| 欧美孕妇孕交黑巨大网站| 欧美性xxxxx极品娇小| 亚洲成人久久久| 亚洲激情视频在线观看| 国产精品永久免费视频| 欧美性高潮床叫视频| 国精产品一区一区三区有限在线| 欧美在线观看一区二区三区| 国产激情综合五月久久| 久久成人亚洲精品| 亚洲网站视频福利| 亚洲乱码国产乱码精品精| 日韩电影中文字幕一区| 国内外成人免费激情在线视频| 日韩欧美在线免费观看| 在线a欧美视频| 欧美激情乱人伦一区| 一区二区三区 在线观看视| 精品免费在线视频| 成人在线小视频| 欧美电影免费看| 国产精品999| 26uuu亚洲国产精品| 久久久久中文字幕| 欧美日韩亚洲91| 国产精品美腿一区在线看| 久久久精品999| 欧美裸体xxxxx| 国产极品jizzhd欧美| 亚洲一区二区中文字幕| 色樱桃影院亚洲精品影院| 欧美日本高清视频| 日韩精品久久久久久久玫瑰园| 日韩高清av在线| 91久久久国产精品| 亚洲精品免费一区二区三区| 国产精品久久久久久久av大片| 国产精品久久久久福利| 亚洲精品国产品国语在线| 91精品中国老女人| 欧美极度另类性三渗透| 亚洲高清免费观看高清完整版| 欧美亚洲一级片| 欧美极品少妇xxxxⅹ免费视频| 日韩影视在线观看| 91在线观看免费网站| 4438全国亚洲精品在线观看视频| 成人欧美一区二区三区在线湿哒哒| 国产精品欧美日韩| 综合网中文字幕| 亚洲激情国产精品| 成人春色激情网| 欧美不卡视频一区发布| 亚洲精品成人久久电影| 亚洲欧美综合区自拍另类| 97香蕉超级碰碰久久免费的优势| 国产精品视频资源| 国产免费一区二区三区在线能观看| 久久精品视频免费播放| 国产高清在线不卡| 欧美刺激性大交免费视频| 亚洲女人天堂色在线7777| 色在人av网站天堂精品| 色哟哟网站入口亚洲精品|