Java代码如何使用url下载文件(并另存为)呢?
下文笔者讲述使用url下载文件的方法分享,如下所示
url下载文件
下载URL信息的实现思路: 1.定义URL对象 2.定义URLConnection对象 3.借助InputStream对象下载流信息例:
url下载文件
/** * * @param remoteURL 下载文件的外链url链接 * @param fileDirectory 下载到指定的目录路径 * @param fileName 下载后的文件名称 * @return */ public static int downloadFile(String remoteURL,String fileDirectory,String fileName) { remoteURL = urlEncodeURL(remoteURL); Path p = Paths.get(fileDirectory); File f_p = p.toFile(); try { if (!f_p.exists()) { f_p.mkdir(); } File f = new File(p.toAbsolutePath().toString() + "/" + fileName); if (!f.exists()) { f.createNewFile(); } FileOutputStream fos = new FileOutputStream(f); byte[] pb = new byte[1024]; URL url = new URL(remoteURL); URLConnection urlc = url.openConnection(); InputStream inputstream = urlc.getInputStream(); int length = -1; while (true) { length = inputstream.read(pb); if (length < 0) { fos.flush(); break; } else { fos.write(pb, 0, length); } } inputstream.close(); fos.close(); return 0; } catch (Exception e) { e.printStackTrace(); return -1; } } //将url中的中文转码 public static String urlEncodeURL(String str) { try { String result = URLEncoder.encode(str, "UTF-8"); result = result.replaceAll("%3A", ":").replaceAll("%2F", "/").replaceAll("\\+", "%20");//+实际上是 空格 url encode而来 return result; } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return null; } //测试 public static void main(String[] angs) throws Exception { //下载文件 UrlDownloadUtil.downloadFile("http://****/***.zip","下载到指定路径","下载后的指定文件名"); }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。