多线程下载的步骤:
1.要知道服务端资源的大小。
通过URLConnection请求服务器url获取。
UrlConnection.getContentLength();//资源的大小
2.在本地创建一个与服务端资源同样大小的一个文件(占位)
//file : 文件; mode:文件的模式,rwd:直接写到底层设备,硬盘
RandomAccessFile randomfile =new RandomAccessFile(File file,String mode)
randomfile.setLength(long size);//创建一个文件和服务器资源一样大小
3.要分配每个线程下载文件的开始位置和结束位置。
4.开启线程去执行下载
通过UrlConnection下载部分资源。
注意:
1.需要Range头,key:Range value:bytes:0-499
urlconnection.setRequestPropety("Range","bytes:0-499")
2.需要设置每个线程在本地文件的保存的开始位置
RandomAccessFile randomfile =new RandomAccessFile(File file,String mode)
randomfile.seek(int startPostion);//本次线程下载保存的开始位置。
5.要知道每个线程下载完毕。
多线程加速下载的原理
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
上一篇:Activity有多个启动图标
下一篇:文件上传的操作
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Java多线程的解析
Java多线程的解析 并发 并行 锁 CAS
守护线程 线程组 多线程 锁