`

导zip4j_1.3.2.jar包,出力压缩加密csv文件

    博客分类:
  • java
阅读更多

导包

ZIP4J---ZIP文件压缩与解压缩学习

 

入口

 

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-1.3.2.jar 包下载,处理zip压缩文件的开发包

    《使用zip4j库处理Java中的ZIP压缩文件》 在Java开发中,处理ZIP压缩文件是一项常见的任务。zip4j库作为一个强大的工具,为开发者提供了便捷的方法来读取、写入、创建、添加、提取、更新以及从ZIP文件中删除文件,...

    zip4j_1.3.2.jar

    `zip4j_1.3.2.jar`便是这样一个专注于处理ZIP文件格式的Java库,它提供了一套简洁易用的API,使得开发者能够方便地进行文件的压缩和解压缩操作。本文将详细介绍`zip4j`库的核心功能和使用方法。 `zip4j`是一个开源...

    net.lingala.zip4j.core.ZipFile_1.3.2.jar

    net.lingala.zip4j.core.ZipFile_1.3.2.jar 解压缩zip,带解压进度

    net.lingala.zip4j.core.ZipFile_1.3.2.jar 解压缩zip,带解压进度

    zip4j默认采用UTF-8编码,所以它支持中文,同时也支持密码,而且支持多种压缩算法,可以说功能强大,但使用起来却非常简单,当然,如果需求比较复杂,那就得好好去研究了。如果你仅仅是简单地解压一个zip压缩文件,...

    zip4j-1.3.2.jar包和使用范例.zip

    `zip4j-1.3.2.jar` 是一个专门用于处理ZIP格式文件的Java库,它提供了方便的API供开发者进行文件的压缩和解压操作,同时支持加密功能。本教程将详细介绍如何使用`zip4j`库以及提供相关的使用示例。 首先,`zip4j`库...

    runjettyrun.jetty8_1.3.2.jar

    runjettyrun.jetty8_1.3.2.jar

    zip4j相关jar包(zip4j-1.3.2.jar)

    总的来说,zip4j-1.3.2.jar是一个功能强大且易用的Java库,对于需要在Java Web环境中进行文件压缩和加密的开发者来说,它是一个理想的选择。其完善的API和丰富的功能使得在各种场景下都能灵活应对,提升了开发效率和...

    zip4j-1.3.2

    总的来说,zip4j-1.3.2是一个强大且易于使用的Java ZIP库,它的功能覆盖了ZIP文件操作的各个方面,无论是基础的压缩解压,还是高级的加密和多线程支持,都为开发者提供了极大的便利。在理解和应用zip4j-1.3.2时,...

    zip4j_1.3.2 - Java操作zip压缩文件接口最新版本

    这是最新版本的zip4j,版本号是1.3.2 官网上没有提供api文档,我生了一份,一并打在zip包中,希望能有所帮助。。。 为了方便大家,本资源不设下载积分。 Java操作zip压缩格式的开源项目,功能强大而且使用方便,...

    zip4j_1.3.2

    包含 最新的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包-1.3.2.zip

    zip4j不仅支持基本的压缩和解压功能,还具备了处理加密ZIP文件的能力,这使得它在许多实际应用中具有很高的价值。本文将深入探讨zip4j库的核心特性,以及如何使用这个库进行ZIP文件的操作。 一、zip4j简介 zip4j是...

    Setup_ZigBee_Sensor_Monitor_1.3.2.exe

    zigbee作为一种短距离、低功耗、低数据传输速率的无线网络技术,它是介于无线标记技术和蓝牙之间的技术方案,在传感器网络等领域应用非常广泛,这得益于它强大的组网能力,可以形成星型、树型和网状网三种zigbee网络...

    commons-fileupload-1.3.2.jar

    这个"commons-fileupload-1.3.2.jar"是该库的1.3.2版本,它支持Java Development Kit (JDK) 1.5及以上版本。在本文中,我们将深入探讨Apache Commons FileUpload库的核心功能、特性以及如何在实际项目中使用它。 ...

    VDM_1.3.2_XiaZaiBa.zip

    - 下载并解压“VDM_1.3.2_XiaZaiBa.zip”压缩包,找到可执行文件启动虚拟光驱。 - 创建映像:选择“添加映像”功能,插入物理光盘,软件会自动读取并创建映像文件。 - 挂载映像:点击“装载映像”,选择要使用的...

    zip4j1.3.2jar包相关,包括源码

    这个1.3.2版本的jar包包括了库的所有功能,使得开发者能够在Java应用程序中方便地操作ZIP文件。源码的提供意味着我们可以深入理解库的工作原理,进行定制化开发,或者对库进行调试和优化。 在使用zip4j时,首先需要...

    commons-fileupload-1.3.2.jar和commons-io-2.5.jar

    在使用`commons-fileupload-1.3.2.jar`处理文件上传时,通常会配合`commons-io-2.5.jar`来完成一些辅助操作,例如读取上传文件的内容、检查文件类型、移动文件到目标位置等。通过这两个库的组合,开发者能够方便地在...

    zip4j_1.3.2_Patch.zip

    《使用zip4j进行文件压缩与解压:深入解析与实践》 在IT行业中,文件的压缩和解压是常见的操作,特别是在数据传输、备份和存储时。zip4j是一款专为Java平台设计的库,它提供了一种简单且高效的方式来处理ZIP文件,...

    org.tmatesoft.svn_1.3.2.eclipse.zip

    标题 "org.tmatesoft.svn_1.3.2.eclipse.zip" 暗示这是一个针对Eclipse集成开发环境(IDE)的Subversion(SVN)客户端插件版本1.3.2的压缩包。Subversion是一款流行的开源版本控制系统,用于管理软件项目中的源代码...

Global site tag (gtag.js) - Google Analytics