写在前面: 我是 「扬帆向海」,这个昵称来源于我的名字以及女朋友的名字。我热爱技术、热爱开源、热爱编程。技术是开源的、知识是共享的

这博客是对自己学习的一点点总结及记录,如果您对 Java算法 感兴趣,可以关注我的动态,我们一起学习。

用知识改变命运,让我们的家人过上更好的生活

相关文章: 使用Java以zip形式批量下载文件、压缩文件

文章目录

  • 1. 步骤
  • 2. 代码实现

1. 步骤

  1. 保证创建一个新文件
  2. 创建大小为1024的buffer数组
  3. 创建文件输出流
  4. 创建字节缓冲输出流
  5. 文件逐步写入本地
    5.1 先读出来保存到buffer数组中
    5.2 然后从 buffer数组中写出数据保存到本地
  6. 最后关闭流释放资源(反向关闭)

2. 代码实现

/*** 通过流下载文件** @param bis      res.bodyStream()* @param filePath 文件路径* @param fileName 文件名称*/
public static void downloadFileByStream(BufferedInputStream bis, String filePath, String fileName) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");String fullPath = basePath + sdf.format(new Date()) + File.separator + filePath + File.separator + fileName;try {// 1. 保证创建一个新文件File file = new File(fullPath);if (!file.getParentFile().exists()) {file.getParentFile().mkdirs();}if (file.exists()) {file.delete();}file.createNewFile();// 2. 创建大小为1024的buffer数组byte[] buffer = new byte[1024];int readLength;// 3. 创建文件输出流,FileOutputStream流以写入数据到File对象表示的文件FileOutputStream fos = new FileOutputStream(new File(fullPath));// 4. 创建字节缓冲输出流BufferedOutputStream bos = new BufferedOutputStream(fos);// 5. 文件逐步写入本地// 5.1 先读出来保存到 buffer数组中while ((readLength = bis.read(buffer, 0, 1024)) != -1) {// 5.2 然后从 buffer数组中写出数据保存到本地bos.write(buffer, 0, readLength);}// 6. 最后关闭流释放资源(反向关闭)bos.close();fos.close();bis.close();} catch (IOException e) {e.printStackTrace();}
}

由于水平有限,本博客难免有不足,恳请各位大佬不吝赐教!

Java中通过流下载文件相关推荐

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

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

  2. Java中IO流,输入输出流概述与总结(转载自别先生文章)

    Java中IO流,输入输出流概述与总结 总结的很粗糙,以后时间富裕了好好修改一下. 1:Java语言定义了许多类专门负责各种方式的输入或者输出,这些类都被放在java.io包中.其中, 所有输入流类都 ...

  3. c语言中关闭文件的作用,【C语言】计算机中的流和文件概述(文件的概念及打开关闭)...

    [C语言]计算机中的流和文件概述(文件的概念及打开关闭) [C语言]计算机中的流和文件概述(文件的概念及打开关闭) 目录 一.计算机中流 二.文件 1.文件的概念 2.文件的分类 3.文件的缓冲区 4 ...

  4. java中字符流 字节流_理解Java中字符流与字节流的区别

    1. 什么是流 Java中的流是对字节序列的抽象,我们可以想象有一个水管,只不过现在流动在水管中的不再是水,而是字节序列.和水流一样,Java中的流也具有一个"流动的方向",通常可 ...

  5. Java中IO流的总结

    有关Java中IO流总结图 流分类 按方向分 输入流 输出流 按单位分 字节流 字符流 按功能分 节点流 处理流(过滤流) 其他 所有的流继承与这四类流:InputSteam.OutputStream ...

  6. java中各种流的详细使用

    http://hunulei.blogbus.com/logs/2005/07/1296309.html http://java.sun.com/docs/books/tutorial/essenti ...

  7. java 中的流_Java中的流(IO

    Java中的流(IO流. java.io包中定义了多个流类型(类或抽象类)来实现 输入 / 输出功能,可以从不同的角度对其进行分类: 按单位可分为: 字节流         (一个字节一个字节的读取) ...

  8. java中IO流详解

    不断更新中!!! 1.流的定义及分类 流是个抽象的概念,是对输入输出设备的抽象,Java程序中,对于数据的输入/输操作都是以"流"的方式进行.设备可以是文件,网络,内存等.将数据从 ...

  9. Java中IO流体系

    转载: https://mp.weixin.qq.com/s?__biz=MzA5NzgzODI5NA==&mid=2454030958&idx=1&sn=df27aadb92 ...

  10. 解决关于java的IO流进行文件拷贝时拒绝访问的问题

    解决关于java的IO流进行文件拷贝时拒绝访问的问题 1.在学习java IO流的时候,想进行文件的自动拷贝功能,我的代码是在idea中编写的,编写没有报红,但是运行时却出现了java.io.File ...

最新文章

  1. Fastadmin管理Mysql_FastAdmin-CMS模版制作(6)-正式部署
  2. 惨淡!苏州楼市政策调控下,这些房企高调入驻,如今黯然离场?
  3. 401 binary watch
  4. 双绞线传输距离_视频监控系统中布线常用传输线缆分类及制作方法
  5. 爬虫神器:一条命令下载《复仇者联盟3:无限战争》
  6. 在Exchange Server 2007中限制部分用户只能收发内部邮件
  7. [PYTHON] for循环中关于列表list中remove method 不得不说的秘密
  8. 2020年日历电子版(打印版)_2020年日历电子版(打印版)79451
  9. “我觉得,这个项目只需要 2 个小时”
  10. VB怎样屏蔽 Alt+F4键
  11. ios签名软件_如何解决IOS企业签名超高掉签率?当然是选择小菠萝企业签名啦!...
  12. android 5.0 qq状态栏颜色,Android 沉浸式状态栏(QQ5.0透明状态栏的效果)
  13. java中的堆和栈_实例理解Java中的堆和栈
  14. android studio更改代码字体,Android Studio怎么改变代码字体大小?
  15. dev cpp的常用快捷键
  16. 苹果手机怎么打印wps文档_怎么用苹果手机打印文件?
  17. 计算机实验三—CPT
  18. 53.大数据之旅——java分布式项目14-信息检索技术之Lucene,Solr
  19. k8s Nodeport方式下service访问,iptables处理逻辑(转)
  20. 边标志填充算法----计算机图形学

热门文章

  1. i5200u处理器 HD5500集成显卡安装黑苹果教程
  2. Tcl 语言 ——语法篇
  3. (ensp)华为USG6000v防火墙简单配置
  4. ae怎么卸载已经安装的插件_ae红巨人插件卸载教程!
  5. [通用指导]笔记本内置无线网卡选用
  6. 最全的Magisk模块下载
  7. python进行英语文献翻译
  8. VMware Fusion CentOS7 下载安装及手动配置静态IP
  9. oracle建表类型,oracle 建表类型以及约束
  10. 华为安装gsm框架_华为gms框架app下载-华为gms框架2020版下载最新版-乐游网安卓下载...