用java多线程断点续传实践 - 编程入门网
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-06-22
this.endPosition = endPos; this.latch = latch; try { tempFile = new File(this.task.fileDir + this.task.fileName + "_" + id); if(!tempFile.exists()){ tempFile.createNewFile(); } } catch (IOException e) { e.printStackTrace(); } } public void run() { System.out.println("Thread " + id + " run "); HttpURLConnection con = null; InputStream inputStream = null; BufferedOutputStream outputStream = null; int count = 0; long threadDownloadLength = endPosition - startPosition; try { outputStream = new BufferedOutputStream (new FileOutputStream(tempFile.getPath(), true)); } catch (FileNotFoundException e2) { e2.printStackTrace(); } ③ for(;;){ ④ startPosition += count; try { //打开URLConnection con = (HttpURLConnection) task.url.openConnection(); setHeader(con); con.setAllowUserInteraction (true); //设置连接超时时间为10000ms ⑤ con.setConnectTimeout(10000); //设置读取数据超时时间为10000ms con.setReadTimeout(10000); if(startPosition < endPosition){ //设置下载数据的起止区间 con.setRequestProperty ("Range", "bytes=" + startPosition + "-" + endPosition); System.out.println("Thread " + id + " startPosition is " + startPosition); System.out.println("Thread " + id + " endPosition is " + endPosition); //判断http status是否为 HTTP/1.1 206 Partial Content或者200 OK //如果不是以上两种状态,把 status改为STATUS_HTTPSTATUS_ERROR ⑥ if (con.getResponseCode() != HttpURLConnection.HTTP_OK && con.getResponseCode() != HttpURLConnection.HTTP_PARTIAL) { System.out.println ("Thread " + id + ": code = " |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于用java多线程断点续传实践 - 编程入门网的所有评论