多线程下载文件

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) + "下载完成");

posted @ 2012-02-26 17:45  林锋  阅读(214)  评论(0编辑  收藏  举报