IM中实现文件的断点下载 - gmtalang/test GitHub Wiki

思路:

  • 根据线程数,将文件大小分成不同的块段。
  • 根据URL生成文件名,同时生成下载路径。
  • 生成每一个块段的起始位置、结束位置。
  • 创建多个线程,在每个线程里面做一下操作以下3个方面的步骤进行操作。
  • 建立连接,从临时文件里面读取上次下载的起始位置,在请求头里面设置下载范围(起始位置,结束位置)。
  • 打开下载的文件,将光标移动到起始位置,并往里面写数据,每写一次,往临时文件里面记录文件位置。
  • 在文件下载完成后,将临时文件删除。 注意:需要两个RandomAccessFile进行存储:一个是下载的文件;另外一个是记录进度的文件,以变未完成的时候可以重新接着下载