源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

java使用http实现文件下载学习示例

  • 时间:2021-11-18 20:36 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:java使用http实现文件下载学习示例
[u]复制代码[/u] 代码如下:
package com.hongyuan.test; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.net.URLDecoder; public class FileDownload {  public static final String LOCAL_PATH="d:/";  public static void main(String[] args) {   //待下载文件地址   String fileUrl="http://211.162.55.16/cdn.baidupcs.com/file/6a73dab7c03023a9835cc737f447674d?xcode=af6ffdc43a44169bac968d32c4bd420084a9a97c308112c9&fid=3255571826-250528-130564002&time=1397293108&sign=FDTAXER-DCb740ccc5511e5e8fedcff06b081203-mQkOeRDtXpyQWwYJkI%2BxKJpxn5k%3D&to=cb&fm=N,B,U,nc&newver=1&expires=1397297563&rt=sh&r=854979042&logid=1751715936&sh=1&vuk=3255571826&fn=Web%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1%20%E7%AC%AC5%E7%89%88.pdf&wshc_tag=0&wsiphost=ipdbm";   InputStream in=null;   OutputStream out=null;   HttpURLConnection conn=null;   String fileName=null;   try {    //初始化连接    URL url=new URL(fileUrl);    conn = (HttpURLConnection) url.openConnection();    conn.setDoInput(true);    conn.setDoOutput(true);    //获取文件名    String disposition=conn.getHeaderField("Content-Disposition");    if(disposition!=null&&!"".equals(disposition)){     //从头中获取文件名     fileName=disposition.split(";")[1].split("=")[1].replaceAll("\"","");    }else{     //从地址中获取文件名     fileName=fileUrl.substring(fileUrl.lastIndexOf("/")+1);    }    if(fileName!=null&&!"".equals(fileName)){     //文件名解码     fileName=URLDecoder.decode(fileName, "utf-8");    }else{     //如果无法获取文件名,则随机生成一个     fileName="file_"+(int)(Math.random()*10);    }    //读取数据    if(conn.getResponseCode()==HttpURLConnection.HTTP_OK){     byte[] buffer=new byte[2048];     in = conn.getInputStream();     out=new FileOutputStream(new File(LOCAL_PATH,fileName));     int count=0;     int finished=0;     int size=conn.getContentLength();     while((count=in.read(buffer))!=-1){      if(count!=0){       out.write(buffer,0,count);       finished+=count;       System.out.printf("########################################---->%1$.2f%%\n",(double)finished/size*100);      }else{       break;      }     }    }   } catch (MalformedURLException e) {    e.printStackTrace();   } catch (IOException e) {    e.printStackTrace();   }finally{    try {     out.close();     in.close();     conn.disconnect();    } catch (IOException e) {     e.printStackTrace();    }   }  } }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部