如何多线程下载文件
其实道理很简单, 在客户端启动多个线程,每个线程负责下载文件的一部分,最后又主线程奖所有下载完成的内容,组装启来,于是一个文件
就下载成功。
具体步骤如下(下面代码是伪代码,用于表达意思):
1.在本地创建一个空文件,和被下载的文件的大小一样大
HttpURLConn conn = new URL(path).getHttpURLConn();
int length = conn.getContentLength();
RadomAccessFile accessFile= new RadomAccessFile(file,"wr");
accessFile.setLength(length);
2.启动4个线程,分别下载文件的一部分
HttpURLConn conn = new URL(path).getHttpURLConn();
conn.setRequestProperty("range","bytes=100-1000");
3,4个线程下载完成后,分别写到本地创建的空文件的合适的位置
accessFile.seek(100);
accessFile.write(buffer);