JAVA技巧-命令行多线程源代码共享_第1页
JAVA技巧-命令行多线程源代码共享_第2页
JAVA技巧-命令行多线程源代码共享_第3页
JAVA技巧-命令行多线程源代码共享_第4页
JAVA技巧-命令行多线程源代码共享_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JAVA技巧:命令行多线程源代码共享*该程序采纳10线程掌握下载,速度大大提升

*目前支持http协议下载

*切换到文件所在名目中

*在命令行中输入javaDownload5http://...,回车,即可运行程序

*/

importjava.io.*;

import.*;

publicclassDownload5extendsThread

{

privatelongstart;

privatelongend;

privateStringurls,name;

privateintID;

publicDownload5(Stringurls,Stringname,intID,longstart,longend)

{

this.start=start;

this.end=end;

this.urls=urls;

this.ID=ID;

=name;

}

publicvoidrun()

{

try

{

System.out.println(“线程“+ID+“启动...“);

Filefile=newFile(name);

URLurl=newURL(urls);

URLConnectioncon=url.openConnection();

con.setAllowUserInteraction(true);

con.setRequestProperty(“Range“,“bytes=“+start+“-“+end);

RandomAccessFilerand=newRandomAccessFile(file,“rw“);

rand.seek(start);

byte[]b=newbyte[2048];

BufferedInputStreambuffer=newBufferedInputStream(con.getInputStream());

intn=0;

while((n=buffer.read(b,0,b.length))!=-1)

{

rand.write(b,0,n);

}

System.out.println(“线程“+ID+“下载完毕“);

buffer.close();

rand.close();

errupt();

}

catch(Exceptionee)

{

ee.printStackTrace();

}

}

publicstaticvoidmain(String[]args)

{

Stringurls=args[0];

intu=urls.lastIndexOf(’/’);

Stringname=urls.substring(u+1,urls.length());

try

{

longtime=System.currentTimeMillis()/1000;

URLurl=newURL(urls);

URLConnectioncon=url.openConnection();

intfilelength=con.getContentLength();

intnum=10;

intsize=filelength/num;

Download5t=null;

CountTimecount=newCountTime(urls,name,time);

count.start();

for(inti=0;i<num;i++)

{

if(i!=num-1)

{

t=newDownload5(urls,name,i+1,size*i,size*(i+1)-1);

t.start();

}

else

{

t=newDownload5(urls,name,i+1,size*i,filelength);

t.start();

}

}

}

catch(Exceptionee)

{

ee.printStackTrace();

}

}

}

classCountTimeextendsThread

{

privateStringurls,name;

privatelongtime;

publicCountTime(Stringurls,Stringname,longtime)

{

this.urls=urls;

=name;

this.time=time;

}

publicvoidrun()

{

try

{

URLurl=newURL(urls);

URLConnectioncon=url.openConnection();

intfilelength=con.getContentLength();

Filef=newFile(name);

while(f.length()<filelength)

{

longLEN=f.length();

this.sleep(1000);

System.out.println((f.length()-LEN)/1024/1.0+“kb/s“);

}

System.out.println(“文件下载完毕“);

System.out.println(“下载所用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论