java打zip包 基于ant
来源:互联网 发布:吉他如何挑选知乎 编辑:程序博客网 时间:2024/05/21 12:45
package org.leopard.utils;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.util.ArrayList;import java.util.List;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.tools.zip.ZipEntry;import org.apache.tools.zip.ZipOutputStream;public class ZipUtil {public static void ZipFiles(List<String> srcfile, String zipPath) { byte[] buf = new byte[4096]; ZipOutputStream out = null; try { // 创建zip输出流 out = new ZipOutputStream(new FileOutputStream(zipPath)); // 循环将源文件列表添加到zip文件中 for (int i = 0; i < srcfile.size(); i++) { File file = new File(srcfile.get(i)); FileInputStream in = new FileInputStream(file); String fileName = file.getName(); out.putNextEntry(new ZipEntry(fileName)); int len; while ( (len = in.read(buf)) > 0) { out.write(buf, 0, len); } out.closeEntry(); in.close(); } } catch (IOException e) { e.printStackTrace(); } finally { if (null != out) { try {out.close();out = null;} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} } }}public static void ZipFiles(HttpServletRequest request, HttpServletResponse response, List<String> srcfile, String downloadZipFileName) { byte[] buf = new byte[4096]; try { // Create the ZIP file // ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipPath)); ZipOutputStream out = new ZipOutputStream(response.getOutputStream());//--设置成这样可以不用保存在本地,再输出, 通过response流输出。 // Compress the files if (request.getHeader("User-Agent").toLowerCase().indexOf("firefox") > 0) { downloadZipFileName = new String(downloadZipFileName.getBytes("GB2312"),"ISO-8859-1"); } else { // 对文件名进行编码处理中文问题 downloadZipFileName = java.net.URLEncoder.encode(downloadZipFileName, "UTF-8");// 处理中文文件名的问题 downloadZipFileName = new String(downloadZipFileName.getBytes("UTF-8"), "GBK");// 处理中文文件名的问题 } response.reset(); // 重点突出 response.setCharacterEncoding("UTF-8"); // 重点突出 response.setContentType("application/x-msdownload");// 不同类型的文件对应不同的MIME类型 // 重点突出 // inline在浏览器中直接显示,不提示用户下载 // attachment弹出对话框,提示用户进行下载保存本地 // 默认为inline方式 response.setHeader("Content-Disposition", "attachment;filename="+downloadZipFileName); for (int i = 0; i < srcfile.size(); i++) { File file = new File(srcfile.get(i)); FileInputStream in = new FileInputStream(file); // Add ZIP entry to output stream. String fileName = file.getName(); out.putNextEntry(new ZipEntry(fileName)); // Transfer bytes from the file to the ZIP file int len; while ( (len = in.read(buf)) > 0) { out.write(buf, 0, len); } // Complete the entry out.closeEntry(); in.close(); } // Complete the ZIP file out.close(); System.out.println("压缩完成."); } catch (IOException e) { e.printStackTrace(); }}public static void main(String[] args) {List<String> paths = new ArrayList<String>();paths.add("d:/地理编码系统详细设计V1.0.docx");paths.add("d:/中国联通协同办公项目.ppt");ZipFiles(paths, "d:/zipfiles/info.zip");}}
0 0
- java打zip包 基于ant
- ant.jar打ZIP包
- JAVA 打ZIP 包
- JAVA打ZIP包
- java 通过ant 实现压缩zip包
- python 打zip 包
- maven 打zip包
- gradle打Zip包
- Ant 打War包
- Ant 打 war 包
- ant 打war包
- ant 打 jar 包
- ant打war包
- ant 打war包
- ANT打jar包
- java项目ant打jar包、war包
- java (jdk+ant.jar包)方式实现zip打包。
- java中ant工具打可以运行jar包实例
- webservice根据wsdl文件生成代码doc命令
- java Math类
- java数组(array)
- HBase中如何开发LoadBalance插件
- Linux ubuntu串口下载stm32(工具爲stm32flash)
- java打zip包 基于ant
- Extjs4.2 线图和柱图的融合图的简单例子1
- 自定义xcode文件模板
- web spring
- 蓝牙核心协议,芯片结构,源码和移植 .
- exists和not exists
- jstl中<c:forEach>的用法
- bat
- 几个不常见却超实用的PHP函数