打包zip文件并下载
来源:互联网 发布:游族网络股票行情 编辑:程序博客网 时间:2024/05/13 03:29
项目开发中用到zip打包功能,并支持下载。
依赖的jar包:org.apache.tools.jar
具体代码:
package com.test;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.URLEncoder;import java.util.ArrayList;import java.util.Date;import java.util.List;import org.apache.tools.zip.ZipEntry;import org.apache.tools.zip.ZipOutputStream;/** * @author WangSl * @Create Time jun 20, 2011 12:14:03 PM * @version 1.0 ant.jar */public class TestCreateZip {public static void testZip() {try {List<File> files = new ArrayList<File>();//目录要提前存在,没有则创建,文件也是File file1 = new File("d:\\test\\log_network.txt");File file2 = new File("d:\\test\\test1.txt");File file3 = new File("d:\\test\\0606.xlsx");files.add(file1);files.add(file2);files.add(file3);//创建一个临时压缩文件,把文件流全部注入到这个文件中 这里的文件你可以自定义是.rar还是.zipString strdate = "20120817025";File file = new File("c:\\" + strdate + "视频文件.zip");if (!file.exists()) {file.createNewFile();}//创建文件输出流FileOutputStream fous = new FileOutputStream(file);//打包的方法会用到ZipOutputStream这样一个输出流, 所以这里把输出流转换一下ZipOutputStream zipOut = new ZipOutputStream(fous);//要打包文件的集合, 还有一个ZipOutputStreamzipFile(files, zipOut);zipOut.close();fous.close();// files.delete();//删除已经存在的文件,此处根据需要注释与不注释} catch (Exception e) {e.printStackTrace();}}/** * 文件打成压缩包 * @param List<File>; * @param org.apache.tools.zip.ZipOutputStream */public static void zipFile(List files,org.apache.tools.zip.ZipOutputStream outputStream) {if (files != null && !files.isEmpty()) {int size = files.size();for (int i = 0; i < size; i++) {File file = (File) files.get(i);zipFile(file, outputStream);}}}/** * 根据输入的文件与输出流对文件进行打包 * @param File * @param org.apache.tools.zip.ZipOutputStream */public static void zipFile(File inputFile,org.apache.tools.zip.ZipOutputStream ouputStream) {try {if (inputFile.exists()) {//是目录不采取操作if (inputFile.isFile()) {FileInputStream IN = new FileInputStream(inputFile);BufferedInputStream bins = new BufferedInputStream(IN, 512);// org.apache.tools.zip.ZipEntryZipEntry entry = new ZipEntry(inputFile.getName());ouputStream.setEncoding("UTF-8");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();}}public static void main(String args[]) {testZip();}}
阅读全文
0 0
- 打包zip文件并下载
- struts zip打包多个文件并下载
- java实现文件自动打包成zip并下载…
- 下载文件打包 zip java
- php zip打包下载文件
- zip压缩打包文件下载
- spingmvc 文件下载打包zip
- PHP打包下载zip文件
- 下载zip文件并解压
- 下载Zip文件并解压
- 导出下载多个Excel文件并打包成zip文件
- Java实现文件自动打包成zip并下载的代码
- Java实现文件自动打包成zip并下载的代码
- 数据库读取文件,并打包为zip包,然后下载(含另存为)
- spring mvc java 把多文件打包成zip,并下载
- [Java Web]服务器获取远程文件并Zip打包给客户端下载
- spring mvc java 把多文件打包成zip,并下载
- 多文件打包rar或者zip下载
- studio关联svn
- java中Keytool的使用总结
- 关于样本溯源相关
- 802.11协议——初探
- iOS获取 当前的系统字体
- 打包zip文件并下载
- Netty实现原理浅析
- 信号量与互斥锁
- 一文看懂神经网络工作原理
- Javascript获取select下拉框选中的的值
- 深入分析JVM逃逸分析对性能的影响
- OpenVX嵌入式图像处理(一)硬件平台及软件介绍
- Java笔试题解-流程控制(1)
- ie浏览器升级的正确姿势