1.计算每条线程下载的文件长度
计算出每段下载文件的大小,已经开始和结束位置。
2.各个线程下载不同长度的文件
RandomAccessFile rfile = new RandomAccessFile(file, "rwd");
rfile.seek(startpos);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(5 * 1000);
conn.setRequestProperty("Range", "bytes="+ startpos+"-"+ endpos);
InputStream inStream = conn.getInputStream();
byte[] buffer = new byte[1024];
int len = 0;
while( (len=inStream.read(buffer)) != -1){
rfile.write(buffer, 0, len);
}
inStream.close();
rfile.close();
System.out.println("线程"+ (threadid+1) + "下载完成");