Java实现断点下载Demo

 1 //1、声明URL
 2         String path="http://localhost:8080/day22_DownLoad/file/a.rmvb";
 3         URL url=new URL(path);
 4         //2、设置已下载文件
 5         String savePath="d:\\a.rmvb";
 6         File file=new File(savePath);
 7         long size=file.length();//文件当前大小,刚开始时返回0
 8         System.out.println(size);
 9         //3、设置连接
10         HttpURLConnection conn=  (HttpURLConnection) url.openConnection();
11         //4、设置访问类型
12         conn.setRequestMethod("GET");
13         //5、设置下载区间
14         conn.setRequestProperty("range","bytes="+size+"-");
15         conn.connect();
16         //6、状态码
17         int code=conn.getResponseCode();//断点是206
18         if(code==206)
19         {
20             InputStream in=conn.getInputStream();
21             int serviceSize=conn.getContentLength();
22             //必须使用
23             RandomAccessFile out=new RandomAccessFile(file, "rw");
24             //从size字节开始写
25             out.seek(size);
26             byte[] b=new byte[1024];
27             int len=-1;
28             while((len=in.read(b))!=-1)
29             {
30                 out.write(b,0,len);
31             }
32             out.close();
33         }
时间: 2024-10-07 07:41:48

Java实现断点下载Demo的相关文章

Java多线程断点下载

多线程下载已经提高了下载的效率,但是当一些特殊情况发生的时候,我们需要对程序进行处理,这样效率会更高.比如,断电断网等造成下载中断,那么我们下一次又要重新开始下载,这样效率底下,所以我们可以考虑使用断点下载.其原理主要是把每次每个线程的下载状况(已经下载的位置)保存到文件,下次读取出来,从上一次下载的位置继续下载,这样就大大提高了下载的效率. 效果: 开始下载: 下载过程中: 下载过程中,系统临时文件保存已下载的位置: 下载完毕,系统清楚记录下载位置的临时文件: 附代码如下: 1 import

java多线程断点下载原理(代码实例演示)

原文:http://www.open-open.com/lib/view/open1423214229232.html 其实多线程断点下载原理,很简单的,那么我们就来先了解下,如何实现多线程的断点下载,首先:你必须明白第一点,那么就是,什么是多线程下载,该知识点可以查看本博客上一篇文章,Android之多线程下载原理,断点下载呢,其实就是在这个的基础之上添加了一些东西,那么添加了什么东西了,现在来做一个详细的了解. 1.在下载的过程中,边下载,变用一个文件来记录下载的位置,也就是下载了多少的数据

java 多线程断点下载功能

import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.io.RandomAccessFile; import java.net.HttpURLConnection; import java.net.URL; public class Demo { //线程个数 public static int threadCount = 3; //线程下载完成的个数 public

Java多线程断点下载分析

1.主函数main()——调用抽象类DownloadUtils.java,传入参数:url.fileName.filePath.threadNum 2.DownloadUtils.java——是抽象类,download()为抽象方法,根据传入的参数选择调用的方法 2.1.创建DownloadInfo.java类的实例bean: DownloadInfo bean = new DownloadInof(url,fileName,filePath,threadNum); 2.2.通过LogUtils

多线程断点下载原理(java代码实例演示)

其实多线程断点下载原理,很简单的,那么我们就来先了解下,如何实现多线程的断点下载,首先:你必须明白第一点,那么就是,什么是多线程下载,该知识点可以查看本博客上一篇文章,Android之多线程下载原理,断点下载呢,其实就是在这个的基础之上添加了一些东西,那么添加了什么东西了,现在来做一个详细的了解. 1.在下载的过程中,边下载,变用一个文件来记录下载的位置,也就是下载了多少的数据 1.创建文件 2.记录下载多少数据 3.存储数据 2.第二次下载的时候,就去读取文件中是否存有数据,读取上次下载的位置

Java之多线程断点下载的实现

RandomAccessFile类: 此类的实例支持对随机訪问文件的读取和写入.随机訪问文件的行为相似存储在文件系统中的一个大型 byte 数组. 存在指向该隐含数组.光标或索引,称为文件指针.输入操作从文件指针開始读取字节.并随着对字节的读取而前移此文件指针. 假设随机訪问文件以读取/写入模式创建,则输出操作也可用.输出操作从文件指针開始写入字节.并随着对字节的写入而前移此文件指针.写入隐含数组的当前末尾之后的输出操作导致该数组扩展.该文件指针能够通过 getFilePointer 方法读取.

Android/java http多线程断点下载(附源码)

先看下项目结构: http多线程断点下载涉及到 数据库,多线程和http请求等几个模块,东西不是很多,想弄清楚也不是很困难,接下来我和大家分享下我的做法. 一.先看MainActivity.java 成员变量,主要是一些下载过程的变量和handler private String path = "http://192.168.1.3:8080/wanmei/yama.apk"; private String sdcardPath; private int threadNum = 5;

【Java EE 学习第22天 文件下载】【单线程下载】【单线程断点下载】【多线程下载】

一.文件下载简述 1.使用浏览器从网页上下载文件,Servlet需要增加一些响应头信息 (1)response.setContentType("application/force-download"); (2)response.setContentLength(fis.available()); (3)response.setHeader("Content-Disposition","attachment;filename="+filename)

JAVA下实现多线程断点下载

多线程断点下载:顾名思义是用多线程实现的,断点是当第三方因素(断电.断网等)中断下载时,下次下载可以继续上次下载的地方下载. 1.通过getContentLength可以获取要下载文件的大小,这样可以在本机上创建一个相同大小的文件用来下载. int fileLength = connection.getContentLength(); 2.由于是多线程,所以要给每一个线程均分分配要下载的位置. for(int i = 0; i < threadCount; i ++) { int startTh