美文网首页
多线程断点下载

多线程断点下载

作者: 魂之挽歌w | 来源:发表于2017-12-13 20:17 被阅读3次

    断点下载思路:

    1.首先获取网络文件的长度,在本地创建一个相同大小的文件

    2.创建N个线程,将网络文件平均分为N份依次分给N个线程下载,多出的加一个线程N=file.length/N==0?N:N+1;

    3.开始从网络文件的不同位置下载数据,并写入相应的本地位置,注意:要计算每条数据下载的起始点和终点位置

    4.每段数据的下载情况都放在数据库(线程id,下载进度等)

    5.下载过程中,子线程不断更新进度】

    细节:

    为下载速度和防止下载意外中断产生不必要的麻烦,在下载时采用多线程断点下载技术。先获取源文件的大小,然后依据线程条数计算出每条线程应下载的数据长度block,再根据线程ID和block计算出每条线程下载的开始和结束端,最后开启多线程进行下载。在下载过程中利用RandomAccessFile类的seek(long

    position)和writer(

    )方法将数据写入文件;与此同时不断更新数据库,实时记录每条线程的下载情况。在此过程中利用Handler和ProgressBar显示下载进度。

    相关文章

      网友评论

          本文标题:多线程断点下载

          本文链接:https://www.haomeiwen.com/subject/imbzixtx.html