断点续传

  断点续传就是从停止的地方重新下载。断点:线程停止的位置,就是当前线程已经下载完成的数据长度;续传:从停止的位置重新下载,向服务器请求上次线程停止位置之后的数据。也就是每当线程停止时就把已经下载的数据长度写入记录文件,当重新下载时,从记录文件读取已经下载的长度。而这个长度就是所需要的断点。可以通过设置网络请求参数,请求服务器从指定的位置开始读取数据。

  当我们获取到下载数据时,还需要将数据写入文件,而普通File对象并不提供从指定位置写入数据的功能,我们需要使用RandomAccessFile对象来实现从指定位置给文件写入数据的功能。

涉及到的类

RandomAccessFile

https://www.jianshu.com/p/fba8e9580054?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation


单线程断点续传

  

多线程断点续传

  多线程断点续传便是在单线程的断点续传上的延伸。多线程断点续传就是把整个文件分割成几个部分,每个部分由一条线程执行下载,而每一条下载线程都要实现断点续传功能。