时间:2021-05-19
复制代码 代码如下:
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();
}
}
}
}
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
这篇文章主要介绍了java实现文件上传、下载、图片预览,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下多文件保
这篇文章主要介绍了Java下载https文件并上传到阿里云oss服务器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可
最近在学习SpringBoot,以下是最近学习整理的实现文件上传下载的Java代码:1、开发环境:IDEA15+Maven+JDK1.82、新建一个maven工
这篇文章主要介绍了JavaScript实现文件下载并重命名代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参
之前实现了使用流来讲http和ftp的文件下载到本地,也实现了将本地文件上传到hdfs上,那现在就可以做到将ftp和http的文件转移到hdfs上了,而不用先将