java基础入门-ZipOutputStream打包下载
今天跟大家聊聊使用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打包下载相关推荐
- java基础入门txt下载地址_java基础入门-ZipOutputStream打包下载
今天跟大家聊聊使用ZipOutputStream打包下载,我下面是使用ant的jar打包的,因为他对应中文的支持比较好 大家也可以使用java.util.zip包里面的工具类打包,但是他对于中文不友好 ...
- java课后习题及答案_《java基础入门》课后习题及答案.doc
<java基础入门>课后习题及答案.doc <Java 基础入门>课后习题及答案博学谷--让 IT 教学更简单,让 IT 学习更有效<Java 基础入门> 课后习题 ...
- java基础入门课后习题_《Java基础入门》课后习题及答案
<Java基础入门>课后习题及答案Java基础入门,课后习题,答案 博学谷--让IT教学更简单,让IT学习更有效 <Java基础入门>课后习题 第1章Java开发入门 一.填空 ...
- Java 基础入门,小白提升路线图
1000+最新Java面试题 获取学习路线资料啦 Java的基础知识就像我们所住的房子的地基,如果地基不稳,上面所盖的楼房再宏伟,也是没人敢去入住的,同理Java的基础不牢固,以后也很难成为真正意义上 ...
- 大数据必学Java知识(一):Java基础入门语法和安装
Java基础入门语法和安装 1. Java概述 1.1 Java语言背景介绍(了解) 1.2 Java语言跨平台原理(理解) 1.3 JRE和JDK(记忆) 1.4 JDK的下载和安装(应用) 2. ...
- JAVA实现文件批量打包下载
JAVA实现文件批量打包下载 实现 1.打包工具类的实现 /*** @author zhouxuan* @since 2019/4/19*/ public class ZipUtils {/*** @ ...
- java课后习题七解析_《Java基础入门》_课后习题解析.doc
<Java基础入门>_课后习题解析 <Java基础入门>课后习题 Java开发入门 一.填空题 1.Java的三大体系分别是_JavaSE_____._JavaEE_____. ...
- Java基础入门(持续更新)
目录 Java基础入门1 1.Hello Java 1.1 Java简介 1.2 Java体系与特点 java的特性 1.3 Java 跨平台原理 Java 技术两种核心机制 Java 虚拟机(JVM ...
- Java基础入门笔记2
Java基础入门笔记2 一. 为什么把程序出错叫做"BUG"? 1. 原因是臭虫或者虫子,现在用来指代电脑系统或者程序中隐藏的一些漏洞或者一些问题,所以现在程序出问题就叫" ...
最新文章
- Nimbus/Supervisor本地目录结构
- 复旦大学跑步爱好者协会章程(终稿)
- 2020 年 DevOps 七大发展趋势
- 【性能优化】 之性能视图及性能参数
- SDOI2010 地精部落
- 三星手机连接公司内网时需要设置EAP 方式: PEAP
- java semaphorewa_Java并发(十五):并发工具类——信号量Semaphore
- ssm使用Ajax的formData进行异步图片上传返回图片路径,并限制格式和大小
- java 多队列_java多线程实现简单队列
- php和apache配置 LoadModule php5_module D:/php/php5apache2.dll
- 3dMAX蒙皮镜像不对称
- 计算机专用英语1500词带音标,计算机专用英语词汇1500词音标版.pdf
- MySQL 两个数据库表中合并数据
- ckfinder java 配置_JAVA里使用CKEditor和CKFinder的配置
- 网页设计之竞赛平台模块
- bat脚本执行sql脚本
- App前端,Web前端,后端,微信小程序到底该学啥?
- 股票入门——新手如何根据公司财报选择股票?
- TraceView使用
- MySQL安装到最后一步未响应的五种解决方法