通过url下载文件

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

1、问题简介

通过文件的url,将文件下载到本地。文件存储的位置为:tomcat服务器的文件夹(通过读取PRoperties文件:可看:http://www.cnblogs.com/0201zcr/p/4700418.html)

2、实现思路

读取properties文件,将获得文件将要存储的位置

通过java的Url类,将网上的文件下载到本地

3、代码实现

1)、读取properties文件(这里建立的是一个web project)

packagecom.zcr.until;importjava.io.BufferedInputStream;importjava.io.File;importjava.io.FileInputStream;importjava.io.IOException;importjava.io.InputStream;importjava.util.Properties;publicclassGetFilePlace

{/*** 读取文件,获取保存的根目录

*@return保存的根目录*/publicString getFilePath(String fileProperties)

{

String dir= System.getProperty("user.dir");//获得tomcat所在的工作路径//获取到存储了文件存储位置的filedir.properties 文件路径//String realDir = dir + File.separator + "src" + File.separator +"META-INF" + File.separator + "config" + File.separator + "picture.properties";String realDir = dir.substring(0, dir.length()-4) + File.separator +"webapps" + File.separator + "appDataGenerate" +File.separator + "WEB-INF"

+ File.separator + "classes" + File.separator + "META-INF" + File.separator + "config" + File.separator +fileProperties;/*String realDir = dir.substring(0, dir.length()-4) + File.separator +"webapps" + File.separator + "appDataGenerate"

+ File.separator + "classes" + File.separator + "META-INF" + File.separator + "config" + File.separator + fileProperties;*/System.out.println("realDir = " +realDir);returnrealDir;

}/*** 获取filePath路径【properities文件】中key对应的值,

*@paramfilePath properities文件路径【包含properities文件】

*@paramkey 要查找的key值

*@returnkey对应的value*/publicString GetValueByKey(String filePath, String key)

{

Properties pps=newProperties();try{

InputStream in=newBufferedInputStream (newFileInputStream(filePath));

pps.load(in);

String value=pps.getProperty(key);

in.close();returnvalue;

}catch(IOException e) {

e.printStackTrace();returnnull;

}

}/*** 查询properities文件中可以对应的存储地点

*@paramkey 查询主键

*@returnkey对应的存储地址*/publicString getFileDirFromProperties(String key,String fileProperties)

{returnGetValueByKey(getFilePath(fileProperties),key);

}publicstaticvoidmain(String[] args)

{

System.out.println(newGetFilePlace().getFileDirFromProperties("brandLogo","picture.properties"));

}

}

2)、文件下载类

packagecom.zcr.until;importjava.io.File;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream;importjava.io.OutputStream;importjava.net.MalformedURLException;importjava.net.URL;importjava.net.URLConnection;importjavax.servlet.http.HttpServletRequest;publicclassURLConnectionDownloader

{

//单纯测试下载publicstaticvoidmain(String[] args)

{

download("http://stocardapp.s3-external-3.amazonaws.com/ios/icons/1001tur@2x.png", "E:\\xiazai.jpg");

}/*** 将urlString的文件下载到

*@paramfilePathName properties文件中的文件存储名

*@paramfileProperties 查找的properties文件

*@paramurlString 待下载的文件url

*@paramfileName 生成的文件名称*/publicstaticvoiddownloadToSelectedFolder(String filePathName,String fileProperties,String urlString,String fileName,HttpServletRequest request)

{//获得picture.properties 文件中,key为android_banner_url的值String pathSavePath =newGetFilePlace().getFileDirFromProperties("android_banner_url","picture.properties");//获得服务器(tomcat)pathSavePath的相对位置String path =request.getsession().getServletContext().getRealPath(pathSavePath);//获得文件存储的绝对路径String generateFileName = path + File.separator +fileName;

download(urlString,generateFileName);

}/*** 下载文件到本地

*

*@paramurlString

* 被下载的文件地址

*@paramfilename

* 本地文件名*/publicstaticvoiddownload(String urlString, String filename)

{//构造URLURL url;try{

url=newURL(urlString);//打开连接URLConnection con =url.openConnection();//输入流InputStream is =con.getInputStream();//1K的数据缓冲byte[] bs =newbyte[1024];//读取到的数据长度intlen;//输出的文件流sOutputStream os =newFileOutputStream(filename);//开始读取while((len = is.read(bs)) != -1) {

os.write(bs,0, len);

}//完毕,关闭所有链接os.close();

is.close();

}catch(MalformedURLException e)

{//TODO Auto-generated catch blocke.printStackTrace();

}catch(IOException e)

{//TODO Auto-generated catch blocke.printStackTrace();

}

}

}

3)、网页调用

URLConnectionDownloader.downloadToSelectedFolder("android_banner_url","picture.properties","http://stocardapp.s3-external-3.amazonaws.com/ios/icons/1001tur@2x.png","2x.png",request);

4)、测试结果

网页的图片:

下载的图片

致谢:感谢您的阅读!

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航