快速业务通道

Java网络编程从入门到精通(24):实现HTTP断点续传下载工具 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-21
("Content-Length"); 007          String[] ss = getHeader("Content-Range").split("[/]"); 008          if (ss.length > 1) 009              length = Integer.parseInt(ss[1]); 010          else 011              length = -1; 012      } 013      catch (Exception e) 014      { 015      } 016      return length; 017  }

getFileSize圭隈議孔嬬頁誼欺和墮猟周議糞縞寄弌。遍枠壓006佩宥狛Content-Length誼欺阻輝念?哘?連議糞悶坪否寄弌。隼朔壓009佩誼欺阻Content-Range忖粁峙侭宙峰議猟周議糞縞寄弌("""朔中議峙)。泌惚Content-Range忖粁音贋壓?夸猟周議糞縞寄弌祥頁Content-Length忖粁議峙。泌惚Content-Length忖粁匆音贋壓?夸卦指-1?燕幣猟周糞縞寄弌涙隈鳩協。

001  public void download(DownloadEvent de, String url , String localFN, 002          int cacheSize) throws Exception 003  { 004      File file = new File(localFN); 005      long finishedSize = 0; 006      long fileSize = 0; // localFN侭峺議猟周議糞縞寄弌 007      FileOutputStream fileOut = new FileOutputStream(localFN, true); 008      URL myUrl = new URL(url ); 009      Socket socket = new Socket(); 010      byte[] buffer = new byte[cacheSize]; // 和墮方象議産喝 011 012      if (file.exists()) 013          finishedSize = file.length(); 014 015      // 誼欺勣和墮議Web彿坿議極笥催?隆戻工?潮範頁80 016      int port = (myUrl .getPort() == -1) ? 80 : myUrl .getPort(); 017      de.state("屎壓銭俊" + myUrl .getHost() + ":" + String.valueOf(port)); 018      socket.connect(new InetSocketAddress(myUrl .getHost(), port), 20000); 019      de.state("銭俊撹孔!"); 020 021      // 恢伏HTTP萩箔?連 022      generateHttpRequest(socket.getOutputStream(), myUrl .getHost(), myUrl 023              .getPath(), finishedSize); 024 025      InputStream inputStream = socket.getInputStream(); 026      // 蛍裂HTTP?哘?連遊 027      analyzeHttpHeader(inputStream, de); 028      fileSize = getFileSize(); // 誼欺和墮猟周議糞縞寄弌 029      if (finishedSize >= fileSize)   030          return; 031      else 032      { 033          if (finishedSize > 0 && stateCode.equals("200")) 034              return; 035      } 036      if (stateCode.charAt(0) != ''2'') 037          throw new Exception("音屶隔議?哘鷹"); 038      int n = 0; 039      long m = finishedSize; 040      while ((n = inputStream.read(buffer)) != -1) 041      { 042          fileOut.write(buffer, 0, n); 043          m += n; 044          if (fileSize != -1) 045          { 046          

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号