转自(留做笔记):https://www.cnblogs.com/henuyuxiang/p/11608936.html

1.基本流程

当我们想要下载网站上的某个资源时,我们会获取一个url,它是服务器定位资源的一个描述,下载的过程有如下几步:

(1)客户端发起一个url请求,获取连接对象。

(2)服务器解析url,并且将指定的资源返回一个输入流给客户。

(3)建立存储的目录以及保存的文件名。

(4)输出了写数据。

(5)关闭输入流和输出流。

2.实现代码的方法

/**  * @从制定URL下载文件并保存到指定目录* @param filePath 文件将要保存的目录  * @param method 请求方法,包括POST和GET  * @param url 请求的路径  * @return  */  public static File saveUrlAs(String url,String filePath,String method){  //System.out.println("fileName---->"+filePath);  //创建不同的文件夹目录  File file=new File(filePath);  //判断文件夹是否存在  if (!file.exists())  {  //如果文件夹不存在,则创建新的的文件夹  file.mkdirs();  }  FileOutputStream fileOut = null;  HttpURLConnection conn = null;  InputStream inputStream = null;  try  {  // 建立链接  URL httpUrl=new URL(url);  conn=(HttpURLConnection) httpUrl.openConnection();  //以Post方式提交表单,默认get方式  conn.setRequestMethod(method);  conn.setDoInput(true);    conn.setDoOutput(true);  // post方式不能使用缓存   conn.setUseCaches(false);  //连接指定的资源   conn.connect();  //获取网络输入流  inputStream=conn.getInputStream();  BufferedInputStream bis = new BufferedInputStream(inputStream);  //判断文件的保存路径后面是否以/结尾  if (!filePath.endsWith("/")) {  filePath += "/";   }  //写入到文件(注意文件保存路径的后面一定要加上文件的名称)  fileOut = new FileOutputStream(filePath+"123.png");  BufferedOutputStream bos = new BufferedOutputStream(fileOut);  byte[] buf = new byte[4096];  int length = bis.read(buf);  //保存文件  while(length != -1)  {  bos.write(buf, 0, length);  length = bis.read(buf);  }  bos.close();  bis.close();  conn.disconnect();  } catch (Exception e)  {  e.printStackTrace();  System.out.println("抛出异常!!");  }  return file;  }  

3.测试类

/**  * @param args  */
public static void main(String[] args)
{  String photoUrl = "123.png";   //文件URL地址                                     String fileName = photoUrl.substring(photoUrl.lastIndexOf("/"));     //为下载的文件命名String filePath = "d:";      //保存目录File file = saveUrlAs(photoUrl, filePath + fileName,"GET");
}

Java从指定URL下载文件并保存到指定目录相关推荐

  1. python下载文件保存_Python根据URL地址下载文件并保存至对应目录的实现

    引言 在编程中经常会遇到图片等数据集将图片等数据以URL形式存储在txt文档中,为便于后续的分析,需要将其下载下来,并按照文件夹分类存储.本文以Github中Alexander Kim提供的图片分类数 ...

  2. Python根据URL地址下载文件并保存至对应目录

    Python根据URL地址下载文件并保存至对应目录 引言 在编程中经常会遇到图片等数据集将图片等数据以URL形式存储在txt文档中,为便于后续的分析,需要将其下载下来,并按照文件夹分类存储.本文以Gi ...

  3. 通过url下载文件并保存

    /*** 说明:根据指定URL将文件下载到指定目标位置* * @param urlPath 下载路径 * @param downloadDir 文件存放目录 * @param fileFullName ...

  4. java 文件无法下载_无法从Java中的URL下载文件

    小编典典 您byte由于 while (fileIn.read() != -1) { //1st read fileOut.write(fileIn.read()); //2nd read - 1st ...

  5. 使用Chrome浏览器自动下载文件并保存到指定的文件路径(使用Selenium更改Chrome默认下载存储路径)...

    https://blog.csdn.net/zbj18314469395/article/details/81207268 转载于:https://www.cnblogs.com/person008/ ...

  6. java从url下载文件_Java从URL下载文件

    在这篇文章中将学习如何从java下载URL中的文件.使用java.net.URL openStream()方法从java程序中的URL下载文件.也可以使用Java NIO Channels或Java ...

  7. java从url下载文件_从URL下载Java文件

    java从url下载文件 Today we will learn how to download a file from URL in java. We can use java.net.URL op ...

  8. 通过url下载文件保存到指定的不存在目录下

    通过url下载文件保存到指定的不存在目录下 从网络Url中下载文件 /*** 从网络Url中下载文件* @param urlStr* @param fileName* @param savePath* ...

  9. java 服务器 文件写入文件_java 从服务器下载文件并保存到本地

    昨天在做一个项目时,用到了从服务器上下载文件并保存到本地的知识,以前也没有接触过,昨天搞了一天,这个小功能实现了,下面就简单的说一下实现过程: 1.基础知识 当我们想要下载网站上的某个资源时,我们会获 ...

最新文章

  1. 1.4 w字,25 张图让你彻底掌握分布式事务原理
  2. Nature:拟南芥微生物组功能研究3人工重组微生物群落
  3. UNIX再学习 -- 信号
  4. Linux sed删除文件注释行并删除空行
  5. 18寒假最后一测+dijistra模板
  6. 《Java多线程编程核心技术》读后感(十五)
  7. java个人博客系统源码_Java基于SSM的个人博客系统(源码 包含前后台)
  8. netframework 4.5官网下载路径
  9. C# 注册Dll文件
  10. Invalid prop: type check failed for prop “index“. Expected String with value “145“...
  11. 字符串匹配(KMP)算法及Java实现
  12. ECharts项目小结~
  13. 【建模算法】基于遗传算法求解TSP问题(Python实现)
  14. pip 批量完全卸载包
  15. 【服务器】揭秘淘宝286亿海量图片存储与处理架构
  16. 全文检索同时高亮多个字段
  17. cosmo是什么牌子_时尚COSMO - 时尚品牌 - 时尚
  18. java计算机毕业设计Web企业差旅在线管理系统源码+mysql数据库+系统+lw文档+部署
  19. android分辨率2k3k4k,android 不同分辨率适配
  20. 第十一课:磁场和洛伦兹力

热门文章

  1. javascript中mouseenter与mouseover的异同
  2. x79主板配什么cpu好 x79主板组装电脑教程
  3. Linux命令行下载磁力链接(magnet:?xt=xxxxx)
  4. 2021宝应各高中高考成绩查询,2019扬州大市各高中高考情况如何,看超全喜报!...
  5. 视频教程-FastAdmin插件开发入门-PHP
  6. vim 清空文本内容指令
  7. 响应式网页设计_响应式网页设计:我们从这里去哪里?
  8. 马云欲保留控制权 阿里或放弃香港上市
  9. 工业机器人关节拆装流程_VR工业机器人拆装系统
  10. 强烈推荐一款国产物联网实时操作系统RT-Thread