package cn.hp.test;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.RandomAccessFile;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class Test {
public static void main(String[] args) {
String path ="http://softforspeed.51xiazai.cn/down/BaiduNetdisk_6.9.7.4.exe";
try {
//创建一个URL对象
URL url = new URL(path);
//打开连接 ,获取了url请求的连接对象conn
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
//请求设置
conn.setConnectTimeout(5000);//setConnectTimeout 请求的超时时间
conn.setReadTimeout(5000);//setReadTimeout 读取超时时间
conn.setRequestMethod("GET");//设置请求提交的方法Get Post
//获取响应码
int responseCode = conn.getResponseCode();
System.out.println("responseCode = " + responseCode);
//如果响应码200 连接成功
if(responseCode == 200){
InputStream in = conn.getInputStream(); //获取用于读取网络资源的输入流
//下载的流
String fileName = conn.getHeaderField("Content-Disposition"); //获取相应的头部文件(包含由文件名)
fileName = fileName.split(";")[1];
fileName = fileName.substring(fileName.indexOf(""")+1,fileName.lastIndexOf("""));
System.out.println("fileName = " + fileName);//成功获取文件名
File file = new File("fileName");
RandomAccessFile raf = new RandomAccessFile(file, "rwd");//"rwd" 赋权限 可读可写
//读一组,下载一组
byte[] bytes = new byte[1024];
int len = 0;
while ((len=in.read(bytes))!=-1){
raf.write(bytes,0,len);
}
//关闭流 释放资源
raf.close();
in.close();
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}