今天跟大家聊聊使用ZipOutputStream打包下载,我下面是使用ant的jar打包的,因为他对应中文的支持比较好

大家也可以使用java.util.zip包里面的工具类打包,但是他对于中文不友好,很多都是乱码的(包括注释、文件名、打包名)

import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipOutputStream;
/*** 打包下载* * @param response*/private void downFile(HttpServletResponse resp,ArrayList<String> filePathList) throws ServletException,IOException {// 头文件resp.setContentType("APPLICATION/OCTET-STREAM");resp.setHeader("Content-Disposition","attachment; filename=" + this.getZipFilename());// 压缩文件ZipOutputStream zos = new ZipOutputStream(resp.getOutputStream());// --拼装ArrayList<File> fileList = new ArrayList<File>();for (int i = 0; i < filePathList.size(); i++) {File file = new File(filePathList.get(i));fileList.add(file);}File[] files = fileList.toArray(new File[fileList.size()]);// --打包zipFile(files, "", zos);zos.flush();zos.close();}
/*** 打包文件* * @param subs*            文件数组* @param baseName*            自定义名字* @param zos*            输出流* @throws IOException*/private void zipFile(File[] subs, String baseName, ZipOutputStream zos)throws IOException {for (int i = 0; i < subs.length; i++) {File f = subs[i];zos.putNextEntry(new ZipEntry(baseName + f.getName()));FileInputStream fis = new FileInputStream(f);byte[] buffer = new byte[1024];int r = 0;while ((r = fis.read(buffer)) != -1) {zos.write(buffer, 0, r);}fis.close();}}/*** 压缩包名字* * @return*/private String getZipFilename() {Date date = new Date();String s = date.getTime() + ".zip";return s;}

java基础入门-ZipOutputStream打包下载相关推荐

  1. java基础入门txt下载地址_java基础入门-ZipOutputStream打包下载

    今天跟大家聊聊使用ZipOutputStream打包下载,我下面是使用ant的jar打包的,因为他对应中文的支持比较好 大家也可以使用java.util.zip包里面的工具类打包,但是他对于中文不友好 ...

  2. java课后习题及答案_《java基础入门》课后习题及答案.doc

    <java基础入门>课后习题及答案.doc <Java 基础入门>课后习题及答案博学谷--让 IT 教学更简单,让 IT 学习更有效<Java 基础入门> 课后习题 ...

  3. java基础入门课后习题_《Java基础入门》课后习题及答案

    <Java基础入门>课后习题及答案Java基础入门,课后习题,答案 博学谷--让IT教学更简单,让IT学习更有效 <Java基础入门>课后习题 第1章Java开发入门 一.填空 ...

  4. Java 基础入门,小白提升路线图

    1000+最新Java面试题 获取学习路线资料啦 Java的基础知识就像我们所住的房子的地基,如果地基不稳,上面所盖的楼房再宏伟,也是没人敢去入住的,同理Java的基础不牢固,以后也很难成为真正意义上 ...

  5. 大数据必学Java知识(一):Java基础入门语法和安装

    Java基础入门语法和安装 1. Java概述 1.1 Java语言背景介绍(了解) 1.2 Java语言跨平台原理(理解) 1.3 JRE和JDK(记忆) 1.4 JDK的下载和安装(应用) 2. ...

  6. JAVA实现文件批量打包下载

    JAVA实现文件批量打包下载 实现 1.打包工具类的实现 /*** @author zhouxuan* @since 2019/4/19*/ public class ZipUtils {/*** @ ...

  7. java课后习题七解析_《Java基础入门》_课后习题解析.doc

    <Java基础入门>_课后习题解析 <Java基础入门>课后习题 Java开发入门 一.填空题 1.Java的三大体系分别是_JavaSE_____._JavaEE_____. ...

  8. Java基础入门(持续更新)

    目录 Java基础入门1 1.Hello Java 1.1 Java简介 1.2 Java体系与特点 java的特性 1.3 Java 跨平台原理 Java 技术两种核心机制 Java 虚拟机(JVM ...

  9. Java基础入门笔记2

    Java基础入门笔记2 一. 为什么把程序出错叫做"BUG"? 1. 原因是臭虫或者虫子,现在用来指代电脑系统或者程序中隐藏的一些漏洞或者一些问题,所以现在程序出问题就叫" ...

最新文章

  1. Nimbus/Supervisor本地目录结构
  2. 复旦大学跑步爱好者协会章程(终稿)
  3. 2020 年 DevOps 七大发展趋势
  4. 【性能优化】 之性能视图及性能参数
  5. SDOI2010 地精部落
  6. 三星手机连接公司内网时需要设置EAP 方式: PEAP
  7. java semaphorewa_Java并发(十五):并发工具类——信号量Semaphore
  8. ssm使用Ajax的formData进行异步图片上传返回图片路径,并限制格式和大小
  9. java 多队列_java多线程实现简单队列
  10. php和apache配置 LoadModule php5_module D:/php/php5apache2.dll
  11. 3dMAX蒙皮镜像不对称
  12. 计算机专用英语1500词带音标,计算机专用英语词汇1500词音标版.pdf
  13. MySQL 两个数据库表中合并数据
  14. ckfinder java 配置_JAVA里使用CKEditor和CKFinder的配置
  15. 网页设计之竞赛平台模块
  16. bat脚本执行sql脚本
  17. App前端,Web前端,后端,微信小程序到底该学啥?
  18. 股票入门——新手如何根据公司财报选择股票?
  19. TraceView使用
  20. MySQL安装到最后一步未响应的五种解决方法

热门文章

  1. [转载]java图片缩放处理
  2. 让ie6,ie7,ie8支持 css3 的部分属性实现全兼容
  3. 103个后台PSD源文件、素材网站
  4. 如何使用IDM下载电子书
  5. 刷机提示图像和设备不匹配_苹果用户一定要学会的刷机教程,包治百病
  6. PAT乙级1025题解
  7. 黑科技:程序猿如何打造属于自己的分体键盘
  8. Nodejs生成二维码图片文件
  9. xampp mysql密码忘记_XAMPP重置MySQL密码
  10. windows下xampp安装