您好,登錄后才能下訂單哦!
這篇文章主要介紹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如何下載網絡文件”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。