例如,看小说。把小说文件的文件压缩成一个web包,用户想看小说就先用断点续传的方式将小说下载到沙盒中,再解压缩 


断点续传的思路:

  1. 根据HEAD方法获取到要下载文件的总大小

  2. 在磁盘上建立一个临时的缓冲文件,该文件的大小与目标文件大小一致

  3. 缓冲文件中所有字节默认均为0

  4. 开启多线程,分别加载不同的range头指定的数据块,待数据块加载完成后,将其分别写入对应的偏移地址

  5. 所有数据块下载完成后,表示文件下载完成 ,将临时文件更名为目标文件


开发难点:

  1. 在开始写入文件之前,首先要建立一个同等大小的文件

  2. 文件的读写问题,在oc里默认是覆盖、追加,如果需要指定位置,需要使用SEEK方法,移动文件指针

  3. 在多线程写入文件时,文件的锁定操作是一个问题