import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class OneThreadDownload {
/*
* 单线程下载:
* 1.socket
* 2.URL
* 3.HTTPClient类
* 我们下载的资源都是在一个网站上的,即使要用http协议
* */
public static void main(String[] agrs) throws IOException{
//存放下载资源的地址
URL url=new URL("http://dl_dir.qq.com/invc/qqpinyin/QQPinyin_Setup_4.5.2004.400.exe");
HttpURLConnection con=(HttpURLConnection) url.openConnection();
//设置URL请求方法
con.setRequestMethod("GET");
//超时设置 网络超时:程序默认的等待时间内没有得到服务器的响应
con.setConnectTimeout(5*1000);
//从连接中获取一个输入流
InputStream iis=con.getInputStream();
//设置一个存放的文件夹
File f=new File("C:\\1.exe");
//设置一个输出流
FileOutputStream fos=new FileOutputStream(f);
//设置缓冲区
byte[] bs=new byte[1024];
int length=-1;
/*
* 下面的length的设置是很有必要的,之前我从txt中读取字符到控制台的时候,没有
* 设置这个参数,最后输出的时候就产生了交错的小方块
* */
while((length=iis.read(bs, 0, bs.length))!=-1){
//写到文件中去
fos.write(bs, 0, length);
}
//凡是输出流都要记得要刷新一下
fos.flush();
//执行完后,关闭释放系统资源
fos.close();
iis.close();
}
}