java如何从服务器下载文件并保存到本地

发布时间:2021-07-26 13:40:27 作者:小新
来源:亿速云 阅读:216

这篇文章主要为大家展示了“java如何从服务器下载文件并保存到本地”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“java如何从服务器下载文件并保存到本地”这篇文章吧。

1.基础知识

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

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

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

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

(4)输出了写数据。

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

2.实现代码的方法

/** 
 * @功能 下载临时素材接口 
 * @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 = "https://cache.yisu.com/upload/information/20200623/121/104449.png";                   
    String fileName = photoUrl.substring(photoUrl.lastIndexOf("/"));  
    //System.out.println("fileName---->"+fileName); 
    String filePath = "d:";  
    File file = saveUrlAs(photoUrl, filePath + fileName,"GET");  
    System.out.println("Run ok!/n<BR>Get URL file " + file);  
 
  }

以上是“java如何从服务器下载文件并保存到本地”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

推荐阅读:
  1. [unity3d]下载网上的图片并保存到本地
  2. 本地工程保存到github上

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

java 服务器

上一篇:如何实现一个完整的Node.js RESTful API

下一篇:css中使用font-face改变字体即加载外部字体的方法

相关阅读

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

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