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(); } } }
直接下载 和 断点续传(直接下载)
最新推荐文章于 2024-07-23 21:37:49 发布
关键词由CSDN通过智能技术生成