首页 百度快照文章正文

java通过url来下载的文件如何将默认文件名不是路径

百度快照 2023年04月23日 12:21 111 im

  Java是一种面向对象的编程语言,被广泛应用于各种领域。在Java中,通过URL来下载文件是一项非常常见的操作。但有时候我们会发现下载下来的文件名不是我们想要的,本文将介绍如何解决这个问题。

java通过url来下载的文件如何将默认文件名不是路径

  

获取文件名

  在Java中,我们可以通过URLConnection类来获取文件的信息,包括文件名。具体操作如下:

  

      

  1. 使用URL对象创建连接
  2.   

  3. 使用URLConnection对象打开连接
  4.   

  5. 获取文件名
  6.   

  代码示例:

  

URL url = new URL("http://example.com/file.zip");  URLConnection conn = url.openConnection();  String disposition = conn.getHeaderField("Content-Disposition");  String fileName = "";  if (disposition != null) {   int index = disposition.indexOf("filename=");   if (index > 0) {   fileName = disposition.substring(index + 10, disposition.length() - 1);   }  } else {   fileName = url.getFile();   fileName = fileName.substring(fileName.lastIndexOf("/") + 1, fileName.length());  }  

  

下载文件

  获取到文件名后,我们就可以开始下载文件了。具体操作如下:

  

      

  1. 使用URL对象创建连接
  2.   

  3. 使用URLConnection对象打开连接
  4.   

  5. 获取输入流
  6.   

  7. 创建输出流
  8.   

  9. 循环读取输入流并写入输出流
  10.   

  11. 关闭输入流和输出流
  12.   

  代码示例:

  

URL url = new URL("http://example.com/file.zip");  URLConnection conn = url.openConnection();  InputStream in = conn.getInputStream();  String fileName = "";  // 获取文件名  ...  OutputStream out = new FileOutputStream(fileName);  byte[] buffer = new byte[1024];  int len = 0;  while ((len = in.read(buffer)) != -1) {   out.write(buffer, 0, len);  }  in.close();  out.close();  

  

完整代码

  将获取文件名和下载文件的代码整合起来,就可以得到完整的代码:

  

URL url = new URL("http://example.com/file.zip");  URLConnection conn = url.openConnection();  InputStream in = conn.getInputStream();  String disposition = conn.getHeaderField("Content-Disposition");  String fileName = "";  if (disposition != null) {   int index = disposition.indexOf("filename=");   if (index > 0) {   fileName = disposition.substring(index + 10, disposition.length() - 1);   }  } else {   fileName = url.getFile();   fileName = fileName.substring(fileName.lastIndexOf("/") + 1, fileName.length());  }  OutputStream out = new FileOutputStream(fileName);  byte[] buffer = new byte[1024];  int len = 0;  while ((len = in.read(buffer)) != -1) {   out.write(buffer, 0, len);  }  in.close();  out.close();  

  通过以上操作,我们可以轻松地通过URL来下载文件,并且保证文件名正确。希望本文能够对您有所帮助。

标签: 文件 quot

发表评论

聚元新创意粤ICP备2023004458号


更多内容:公司网页设计制作   SEO关键词大全 万网空间介绍 上海网站建设 上海网络之窗 专业网站建设 东莞网络 二级域名百科 云建站网 免费建站 免费域名注册中心 网站制作师 Web制作教程 外贸推广网 建站指南 移动网站建设 SEO优化之家 建站之道 网站极客 易建网 网站规划大师 SEO之路 网络开发大师

AI+开源系统自助建站
五月特惠399元/个

微信号复制成功

打开微信,点击右上角"+"号,添加朋友,粘贴微信号,搜索即可!