1.通过多线程多写文件
public class DownloadUtils {
public static final String TAG = DownloadUtils.class.getSimpleName();
private File src;// 源文件
private File dst;// 目标文件
private int threadNum;// 线程数量
public DownloadUtils(File src, File dst, int threadNum) {
super();
this.src = src;
this.dst = dst;
this.threadNum = threadNum;
}
// 开启多线程下载
public void download() {
// 循环开多个线程
for (int i = 0; i < threadNum; i++) {
DownloadThread thread = new DownloadThread(i);
thread.setName("线程" + (i + 1));
thread.start();
}
}
// 定义一个下载线程
class DownloadThread extends Thread {
// private int index;/表示第几个线程
// 每一个线程要下载的文件大小
// 如果不能平方,则每一份+1,确保下载完整个文件
private long BlockSize = src.length() % threadNum == 0 ? src.length() / threadNum
: src.length() / threadNum + 1;
// 起始位置
private long startPos;
public DownloadThread