Java实例:利用java多线程断点续传实践Java认证考试

文章作者 100test 发表时间 2010:01:01 15:42:40
来源 100Test.Com百考试题网


  annegu做了一个简单的Http多线程的下载程序,来讨论一下多线程并发下载以及断点续传的问题。
  这个程序的功能,就是可以分多个线程从目标地址上下载数据,每个线程负责下载一部分,并可以支持断点续传和超时重连。
  下载的方法是download(),它接收两个参数,分别是要下载的页面的url和编码方式。在这个负责下载的方法中,主要分了三个步骤。第一步是用来设置断点续传时候的一些信息的,第二步就是主要的分多线程来下载了,最后是数据的合并。
  1、多线程下载:
  /** *//** http://www.bt285.cn http://www.5a520.cn
  */
  public String download(String urlStr, String charset) {
  this.charset = charset.
  long contentLength = 0.
  CountDownLatch latch = new CountDownLatch(threadNum).
  long[] startPos = new long[threadNum].
  long endPos = 0.
  try {
  // 从url中获得下载的文件格式与名字
  this.fileName = urlStr.substring(urlStr.lastIndexOf("/") 1).
  this.url = new URL(urlStr).
  URLConnection con = url.openConnection().
  setHeader(con).
  // 得到content的长度
  contentLength = con.getContentLength().
  // 把context分为threadNum段的话,每段的长度。
  this.threadLength = contentLength / threadNum.
  // 第一步,分析已下载的临时文件,设置断点,如果是新的下载任务,则建立目标文件。在第4点中说明。
  startPos = setThreadBreakpoint(fileDir, fileName, contentLength, startPos).
  //第二步,分多个线程下载文件
  ExecutorService exec = Executors.newCachedThreadPool().
  for (int i = 0. i

相关文章


Java应用程序常见异常类解析Java认证考试
J2EE基础:浅谈依赖注入实现的方法Java认证考试
J2ME下漫游(追逐)AI的实现Java认证考试
JSP JavaScript打造二级级联下拉菜单Java认证考试
Java实例:利用java多线程断点续传实践Java认证考试
Java读取相对路径文件Java认证考试
JSP架构、JSP开发工具优缺点比较Java认证考试
ServletJSP线程学习Java认证考试
五步搞定Spring整合StrusJava认证考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛