导包
入口
public static void writeCsvAsZip(HttpServletResponse response, List<CsvEntity> entities, String fileName, String password) { String csv = ".csv"; String zip = ".zip"; String url = ""; try { File csvFile = CsvCreator.out(entities); url = csvFile.getPath(); url = url.substring(0, url.length() - 3); fileChannelCopy(csvFile.getPath(), url + csv); makeZip(url + zip, new File(url + csv), password); StringBuilder uri = new StringBuilder(); uri.append(url); uri.append(zip); downloadFile(response, uri, fileName); } catch (IOException e) { AxaNaviLogHelper.error("CSV出力失败", e); throw new SystemException(ERROR, ErrorCode.CSV_OUT_ERROR, "CSV出力失败。", e); } catch (ZipException e) { AxaNaviLogHelper.error("CSV出力失败。", e); throw new SystemException(ERROR, ErrorCode.CSV_OUT_ERROR, "CSV出力失败。", e); } finally { deleteFile(url + csv); deleteFile(url + zip); } }
文件复制
public static void fileChannelCopy(String ChangeBeforeName, String ChangeAfterName) { File s = new File(ChangeBeforeName); File t = new File(ChangeAfterName); FileInputStream fi = null; FileOutputStream fo = null; FileChannel in = null; FileChannel out = null; try { fi = new FileInputStream(s); fo = new FileOutputStream(t); in = fi.getChannel(); out = fo.getChannel(); in.transferTo(0, in.size(), out); } catch (IOException e) { e.printStackTrace(); } finally { try { fi.close(); in.close(); fo.close(); out.close(); } catch (IOException e) { AxaNaviLogHelper.error("CSV失败。", e); throw new SystemException(ERROR, ErrorCode.CSV_OUT_ERROR, "CSV失败。", e); } } }
压缩加密
引用zip4j_1.3.2.jar包方法
public static void makeZip(String zipFileName, File inputFile, String password) throws ZipException { ZipFile zipFile = new ZipFile(zipFileName); ArrayList<File> filesToAdd = new ArrayList<File>(); filesToAdd.add(inputFile); ZipParameters parameters = new ZipParameters(); parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE); parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL); if (!StringUtils.isEmpty(password)) { parameters.setEncryptFiles(true); parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_STANDARD); parameters.setAesKeyStrength(Zip4jConstants.AES_STRENGTH_256); parameters.setPassword(password); } zipFile.addFiles(filesToAdd, parameters); }
下载
public static void downloadFile(HttpServletResponse response, StringBuilder uri, String fileName) throws IOException { StringBuffer filename = new StringBuffer(); filename.append(uri); File file = new File(filename.toString()); StringBuffer sb = new StringBuffer(); sb.append("attachment; filename=").append(fileName); response.setHeader("Expires", "0"); response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0"); response.setHeader("Pragma", "public"); response.setContentType("application/x-msdownload;charset=UTF-8"); response.setHeader("Content-Disposition", new String(sb.toString() .getBytes(), "Windows-31J")); FileInputStream inputStream = new FileInputStream(file); OutputStream outputStream = response.getOutputStream(); byte[] buffer = new byte[1024]; int i = -1; while ((i = inputStream.read(buffer)) != -1) { outputStream.write(buffer, 0, i); } outputStream.flush(); outputStream.close(); inputStream.close(); }
删除临时文件
public static void deleteFile(String sPath) { File file = new File(sPath); if (file.isFile() && file.exists()) { file.delete(); } }
具体参考
http://www.open-open.com/lib/view/open1378556210553.html
相关推荐
《使用zip4j库处理Java中的ZIP压缩文件》 在Java开发中,处理ZIP压缩文件是一项常见的任务。zip4j库作为一个强大的工具,为开发者提供了便捷的方法来读取、写入、创建、添加、提取、更新以及从ZIP文件中删除文件,...
`zip4j_1.3.2.jar`便是这样一个专注于处理ZIP文件格式的Java库,它提供了一套简洁易用的API,使得开发者能够方便地进行文件的压缩和解压缩操作。本文将详细介绍`zip4j`库的核心功能和使用方法。 `zip4j`是一个开源...
net.lingala.zip4j.core.ZipFile_1.3.2.jar 解压缩zip,带解压进度
zip4j默认采用UTF-8编码,所以它支持中文,同时也支持密码,而且支持多种压缩算法,可以说功能强大,但使用起来却非常简单,当然,如果需求比较复杂,那就得好好去研究了。如果你仅仅是简单地解压一个zip压缩文件,...
`zip4j-1.3.2.jar` 是一个专门用于处理ZIP格式文件的Java库,它提供了方便的API供开发者进行文件的压缩和解压操作,同时支持加密功能。本教程将详细介绍如何使用`zip4j`库以及提供相关的使用示例。 首先,`zip4j`库...
runjettyrun.jetty8_1.3.2.jar
总的来说,zip4j-1.3.2.jar是一个功能强大且易用的Java库,对于需要在Java Web环境中进行文件压缩和加密的开发者来说,它是一个理想的选择。其完善的API和丰富的功能使得在各种场景下都能灵活应对,提升了开发效率和...
总的来说,zip4j-1.3.2是一个强大且易于使用的Java ZIP库,它的功能覆盖了ZIP文件操作的各个方面,无论是基础的压缩解压,还是高级的加密和多线程支持,都为开发者提供了极大的便利。在理解和应用zip4j-1.3.2时,...
这是最新版本的zip4j,版本号是1.3.2 官网上没有提供api文档,我生了一份,一并打在zip包中,希望能有所帮助。。。 为了方便大家,本资源不设下载积分。 Java操作zip压缩格式的开源项目,功能强大而且使用方便,...
包含 最新的zip4j_1.3.2.jar包,例子及API文档。 希望大家在对zip文件操作时有所帮助。 官网地址 http://www.lingala.net/zip4j/ Key features: Create, Add, Extract, Update, Remove files from a Zip file ...
zip4j不仅支持基本的压缩和解压功能,还具备了处理加密ZIP文件的能力,这使得它在许多实际应用中具有很高的价值。本文将深入探讨zip4j库的核心特性,以及如何使用这个库进行ZIP文件的操作。 一、zip4j简介 zip4j是...
zigbee作为一种短距离、低功耗、低数据传输速率的无线网络技术,它是介于无线标记技术和蓝牙之间的技术方案,在传感器网络等领域应用非常广泛,这得益于它强大的组网能力,可以形成星型、树型和网状网三种zigbee网络...
这个"commons-fileupload-1.3.2.jar"是该库的1.3.2版本,它支持Java Development Kit (JDK) 1.5及以上版本。在本文中,我们将深入探讨Apache Commons FileUpload库的核心功能、特性以及如何在实际项目中使用它。 ...
- 下载并解压“VDM_1.3.2_XiaZaiBa.zip”压缩包,找到可执行文件启动虚拟光驱。 - 创建映像:选择“添加映像”功能,插入物理光盘,软件会自动读取并创建映像文件。 - 挂载映像:点击“装载映像”,选择要使用的...
这个1.3.2版本的jar包包括了库的所有功能,使得开发者能够在Java应用程序中方便地操作ZIP文件。源码的提供意味着我们可以深入理解库的工作原理,进行定制化开发,或者对库进行调试和优化。 在使用zip4j时,首先需要...
在使用`commons-fileupload-1.3.2.jar`处理文件上传时,通常会配合`commons-io-2.5.jar`来完成一些辅助操作,例如读取上传文件的内容、检查文件类型、移动文件到目标位置等。通过这两个库的组合,开发者能够方便地在...
《使用zip4j进行文件压缩与解压:深入解析与实践》 在IT行业中,文件的压缩和解压是常见的操作,特别是在数据传输、备份和存储时。zip4j是一款专为Java平台设计的库,它提供了一种简单且高效的方式来处理ZIP文件,...
标题 "org.tmatesoft.svn_1.3.2.eclipse.zip" 暗示这是一个针对Eclipse集成开发环境(IDE)的Subversion(SVN)客户端插件版本1.3.2的压缩包。Subversion是一款流行的开源版本控制系统,用于管理软件项目中的源代码...