温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java如何下载网络文件

发布时间:2020-12-01 09:50:18 来源:亿速云 阅读:439 作者:小新 栏目:编程语言

这篇文章主要介绍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如何下载网络文件”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI