多线程下载文件涉及到的知识点主要有:
1、RandomAccessFile 用来生成与网络文件大小一样的本地文件。它被实例化后有两个参数: 文件名,模式。文件名是指想保存在本地的文件名称,直接填上文件名称,文件将会以该名称保存在该项目的src根目录下。 模式大家可以查下API,我比较有印象的是“r”(只读),”rw”(读写),”rwd”(可读写并且保存文件内容),“rws”(可读写并保存文件内容和元数据)。在android中最好是使用后面2种方式,因为使用前2种,可能在手机非正常关机的情况下数据未保存。
文件在上传的过程中,需要使用RandomAccessFile 中的seek方法来获取文件保存在本地的起始位置。
2、状态码的判断,当文件未下载完成时,及下载了一部分时,一般服务器不会给200状态码,但我这个demo中,经过印信息得出,每一部分下载完成,都是给了200状态码,大家在使用的时候要注意。
3、我这里给的路径是我自己的一个web项目,启动了tomcat后访问的,如果您要完成文件下载,也可以自己启动一个项目进行测试,或者直接在网络中找一个文件下载地址。
我以前工作的项目是Android,但用在android中也是可以直接移植过去的哦!以前做文件的下载基本没有用到多线程,经过这次系统学习,使我具有更加清晰的思路来完成大文件下载。