您好,欢迎访问一九零五行业门户网

java下载网络文件的方法有哪些

下载网络文件的方法有:
字节流下载
apache的fileutils工具包下载
nio下载
学习视频分享:java教学视频
实现代码如下:
package com.dsp.rpc.metricelf; import org.apache.commons.io.fileutils; import java.io.file;import java.net.httpurlconnection;import java.net.url; public class downloadziputil { /** * fileutils下载网络文件 * * @param serverurl :网络文件地址 * @param savepath:本地保存路径 * @param zipsavepath :压缩文件保存路径 * @return */ public static string downloadfile(string serverurl, string savepath, string zipsavepath) throws exception { string result; file f = new file(savepath); if (!f.exists()) { if (!f.mkdirs()) { throw new exception("makdirs: '" + savepath + "'fail"); } } url url = new url(serverurl); httpurlconnection conn = (httpurlconnection) url.openconnection(); conn.setconnecttimeout(3 * 1000); //防止屏蔽程序抓取而放回403错误 conn.setrequestproperty("user-agent", "mozilla/4.0(compatible;msie 5.0;windows nt;digext)"); long totalsize = long.parselong(conn.getheaderfield("content-length")); if (totalsize > 0) { fileutils.copyurltofile(url, new file(zipsavepath)); result = "success"; } else { throw new exception("can not find serverurl :{}" + serverurl); } return result; } /** * 字节流下载压缩文件 * @param serverurl :网络地址 * @param savepath :保持路径 * @param zipsavepath :压缩文件保持路径 * @return :下载结果 * @throws exception :异常 */ public static string downloadzip(string serverurl,string savepath,string zipsavepath) throws exception{ string result = "fail"; file f = new file(savepath); if(!f.exists()){ if (!f.mkdirs()) { throw new exception("makdirs: '" + savepath + "'fail"); } } //sardine是webdav的工具包 sardine sardine = sardinefactory.begin("test","test"); if(sardine.exists(serverurl)){ url url = new url(serverurl); urlconnection conn = url.openconnection(); int length = conn.getcontentlength(); conn.setconnecttimeout(3 * 1000); // 防止屏蔽程序抓取而返回403错误 conn.setrequestproperty("user-agent", "mozilla/4.0 (compatible; msie 5.0; windows nt; digext)"); inputstream is = sardine.getinputstream(serverurl); bufferedinputstream bis = new bufferedinputstream(is); fileoutputstream fos = new fileoutputstream(zipsavepath); bufferedoutputstream bos = new bufferedoutputstream(fos); int len; byte[] bytes = new byte[length/5]; while ((len = bis.read(bytes)) != -1) { bos.write(bytes, 0, len); } //清除缓存 bos.flush(); //关闭流 fos.close(); is.close(); bis.close(); bos.close(); result = "success"; }else { throw new exception("can not find file"); } return result; } }
相关推荐:java入门教程
以上就是java下载网络文件的方法有哪些的详细内容。
其它类似信息

推荐信息