`
行者买刀
  • 浏览: 191873 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

控制层实现文件压缩与下载

 
阅读更多

     之前做的一个项目时遇到下载多个文件,要求先能够在压缩在一并下载.实现原理也很简单,主要就是利用Zip流进行压缩.

/**
	 * 多个文件
	 * 
	 * @param files
	 *            所要打包的文件列表
	 * @param outputStream
	 */
	public static void zipFile(List files, ZipOutputStream outputStream) {
		int size = files.size();
		for (int i = 0; i < size; i++) {
			File file = (File) files.get(i);
			zipFile(file, outputStream);
		}
	}

	/**
	 * 根据输入的文件与流对文件进行打包
	 */
	public static void zipFile(File inputFile, ZipOutputStream ouputStream) {
		try {
			if (inputFile.exists()) {
				if (inputFile.isFile()) {
					FileInputStream in = new FileInputStream(inputFile);
					BufferedInputStream bins = new BufferedInputStream(in, 512);
					ZipEntry entry = new ZipEntry(inputFile.getName());
					ouputStream.putNextEntry(entry);
					// 向压缩文件中输出数据
					int nNumber;
					byte[] buffer = new byte[512];
					while ((nNumber = bins.read(buffer)) != -1) {
						ouputStream.write(buffer, 0, nNumber);
						// 关闭创建的流对象
					}
					bins.close();
					in.close();
				} else {
					try {
						File[] files = inputFile.listFiles();
						for (int i = 0; i < files.length; i++) {
							zipFile(files[i], ouputStream);
						}
					} catch (Exception e) {
						e.printStackTrace();
					}
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
		test(){
					File file = new File("temp.rar");
					if (!file.exists()) {
						file.createNewFile();
					}
					FileOutputStream fous = new FileOutputStream(file);
					ZipOutputStream zipOut = new ZipOutputStream(fous);
					zipFile(files, zipOut);
					zipOut.close();

}

 

分享到:
评论

相关推荐

    SpringBoot文件上传.zip

    SpringBoot2.x实现单文件和多文件上传,适合初学者学习 。

    ASP专题文档集.zip(压缩密码:eshu98)

    在浏览器中上载文件的方法与实现 用ASP建造自己的聊天室 15种asp使用技巧(中文版) ASP实现分页显示 实现滚动新闻 ASP发送邮件的组件 ASP访问数据库 访问数据库的三种方式 ASP与ADO在Web数据库查询中的应用 不...

    基于SSM健身俱乐部管理系统的设计与实现

    系统后端框架采用SSM框架,其中SSM框架为SPRINGMVC、SOPRING、MYBATIIS三者总称,在整个系统项目开发过程中SSM框架将整个系统项目开发分为表示层、控制层、服务层和Dao层,每一层的所完成的事务明确,采用分而治之的...

    桃源文件系统v3.3

    软件介绍:《桃源企业文件管理系统》适用于任何机构内部或内外之间的电子文档存储管理、网络服务、传阅签收、公文审批等业务流程,便于机构全体、部门、个人的...,有关文档按机构、部门、项目组、职员进行严格管理...

    RFC中文文档-txt

    RFC1962 PPP压缩控制协议 (CCP) RFC1977 PPP BSD 压缩协议 RFC1979 PPP压缩协议 RFC1981 IP 版本 6的路径MTU探索 RFC1982 序列号算法 RFC1988 有条件地授予权利给特殊的HP专利于连接Internet工程特遣队的Internet-...

    桃源企业文件管理系统v3.2

    前台用户登录后可实现类似windows资源管理器的目录创建、删除和移动,文件上传、下载及文件列表查看,图片预览及多媒体文件在线播放(需安装多媒体播放器),文件剪切、复制、粘贴、改名、删除、注释、导航、压缩、...

    桃源企业文件管理系统 3.2.rar

    前台用户登录后可实现类似windows资源管理器的目录创建、删除和移动,文件上传、下载及文件列表查看,图片预览及多媒体文件在线播放(需安装多媒体播放器),文件剪切、复制、粘贴、改名、删除、注释、导航、压缩、...

    java源码包---java 源码 大量 实例

     Java实现HTTP连接与浏览,Java源码下载,输入html文件地址或网址,显示页面和HTML源文件,一步步的实现过程请下载本实例的Java源码,代码中包括丰富的注释,对学习有帮助。 Java实现的FTP连接与数据浏览程序 1个...

    桃源企业文件管理系统 v3.3.zip

    前台用户登录后可实现类似windows资源管理器的目录创建、删除和移动,文件上传、下载及文件列表查看,图片预览及多媒体文件在线播放(需安装多媒体播放器),文件剪切、复制、粘贴、改名、删除、注释、导航、压缩、...

    C#编译原理 ZIP 压缩文件

    8.4 控制语句和逻辑表达式的代码生成 328 8.4.1 if 和while 语句的代码生成 328 8.4.2 标号的生成和回填 330 8.4.3 逻辑表达式的代码生成 330 8.4.4 if 和while 语句的代码生成过程 样例 331 8.5 过程和函数调用的...

    FreeBSD操作系统设计与实现

    6.6 与文件系统无关的服务 6.6.1 名字缓存 6.6.2 缓冲区管理 6.6.3 缓冲区管理的实现 6.7 可叠加的文件系统 6.7.1 简单的文件系统层 6.7.2 联合安装的文件系统 6.7.3 其他文件系统 6.8 复习题 6.9 参考文献 第7章 ...

    JAVA上百实例源码以及开源项目

     Java实现HTTP连接与浏览,Java源码下载,输入html文件地址或网址,显示页面和HTML源文件,一步步的实现过程请下载本实例的Java源码,代码中包括丰富的注释,对学习有帮助。 Java实现的FTP连接与数据浏览程序 1个...

    java源码包4

     Java实现HTTP连接与浏览,Java源码下载,输入html文件地址或网址,显示页面和HTML源文件,一步步的实现过程请下载本实例的Java源码,代码中包括丰富的注释,对学习有帮助。 Java实现的FTP连接与数据浏览程序 1个...

    VC与Labview、Matlab编程论文资料

    MIMO系统预测控制及其Matlab与VC仿真实现.pdf MScomm控件在VC++6.0串口通信中的应用.pdf MSComm控件在VC_6_0串口通信中的应用.pdf ODBC技术解析与MFCODBC实例应用.pdf Python+语言的可视化编程环境的设计与实现.pdf ...

    VC与Labview、Matlab编程论文资料[2].rar

    MIMO系统预测控制及其Matlab与VC仿真实现.pdf MScomm控件在VC++6.0串口通信中的应用.pdf MSComm控件在VC_6_0串口通信中的应用.pdf ODBC技术解析与MFCODBC实例应用.pdf Python+语言的可视化编程环境的设计与实现.pdf ...

    VC与Labview、Matlab编程论文资料[4].rar

    MIMO系统预测控制及其Matlab与VC仿真实现.pdf MScomm控件在VC++6.0串口通信中的应用.pdf MSComm控件在VC_6_0串口通信中的应用.pdf ODBC技术解析与MFCODBC实例应用.pdf Python+语言的可视化编程环境的设计与实现.pdf ...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    [ConfigLine.java] 控制条类 [RoundBox.java] 限定选择控件 [MonthMaker.java] 月份表算法类 [Pallet.java] 调色板,统一配色类 Java扫雷源码 Java生成自定义控件源代码 2个目标文件 Java实现HTTP连接与浏览,...

    当当网电商系统全套源码亲测通过(附带邮箱验证功能)

    1.项目介绍 典型电子商务系统(在线购物平台),模拟了当当系统部分功能。 2.功能需求 1)用户管理模块(3天)user 实现登录、注册功能 2)产品浏览模块(2天)main ...更多详情尽在压缩文件中,可自行下载查看~

    NTKO文档在线编辑控件4.0.1.2

    4 新增压缩存储和传输功能 V2.5.1版本新增的压缩存储和传输功能,使的20K左右的Word文档压缩后只有2K左右。极大节约了数据库或磁盘空间,提高了网络利用率和传输效率。 5 新增全文批注功能和远程印章管理控件。 V2.5...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    本书是第II卷,以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java进行桌面程序开发各个方面的知识和技巧,主要包括Java语法与面向对象技术、Java高级应用、窗体与控件应用、文件操作...

Global site tag (gtag.js) - Google Analytics