`

java file zip and upzip

    博客分类:
  • zip
阅读更多
java zip file use Apache Compress

private void zip(File file) throws IOException {


        zipFile = new File(file.getParent(), file.getName()+".zip");
        FileOutputStream fOut = null;
        BufferedOutputStream bOut = null;
        ZipArchiveOutputStream tOut = null;

        try {
            fOut = new FileOutputStream(zipFile);
            bOut = new BufferedOutputStream(fOut);
            tOut = new ZipArchiveOutputStream(bOut);
            addFileToZip(tOut, file, "");
        } finally {
            if(tOut!=null){
                tOut.finish();
            }

            tOut.close();
            bOut.close();
            fOut.close();
        }

    }


    private void addFileToZip(ZipArchiveOutputStream zOut, File file, String base) throws IOException {

        String entryName = base + file.getName();
        ZipArchiveEntry zipEntry = new ZipArchiveEntry(file, entryName);

        zOut.putArchiveEntry(zipEntry);

        if (file.isFile()) {
            FileInputStream fInputStream = null;
            try {
                fInputStream = new FileInputStream(file);
                IOUtils.copy(fInputStream, zOut);
                zOut.closeArchiveEntry();
            } finally {
                IOUtils.closeQuietly(fInputStream);
            }

        } else {
            zOut.closeArchiveEntry();
            File[] children = file.listFiles();

            if (children != null) {
                for (File child : children) {
                    addFileToZip(zOut, child, entryName + "/");
                }
            }
        }
    }




java upzip file

private void unZipFile(File fSourceZip) throws ZipException, IOException {

        long fileSize=0;

        String zipPath = fSourceZip.getParentFile().getAbsolutePath();
        File temp = new File(zipPath);
        temp.mkdir();
        temp.setExecutable(true);
        temp.setReadable(true);
        temp.setWritable(true);

        ZipFile zipFile = new ZipFile(fSourceZip);
        Enumeration e = zipFile.entries();

        boolean createFolder = true;

        while (e.hasMoreElements()) {
            ZipEntry entry = (ZipEntry) e.nextElement();
            File destinationFilePath = new File(zipPath, entry.getName());
            destinationFilePath.setExecutable(true);
            destinationFilePath.setReadable(true);
            destinationFilePath.setWritable(true);
            if (createFolder) {
                destinationFilePath.getParentFile().mkdirs();
            }
            if (entry.isDirectory()) {
                continue;
            } else {
                createFolder = true;
                BufferedInputStream bis = new BufferedInputStream(
                        zipFile.getInputStream(entry));

                int b;
                byte buffer[] = new byte[1024];
                FileOutputStream fos = new FileOutputStream(
                        destinationFilePath);
                BufferedOutputStream bos = new BufferedOutputStream(fos,
                        1024);

                while ((b = bis.read(buffer, 0, 1024)) != -1) {
                    bos.write(buffer, 0, b);
                }
                bos.flush();
                bos.close();
                bis.close();
            }
            fileSize = fileSize + destinationFilePath.length();
        }

        zipFile.close();
        fSourceZip.delete();
    }

分享到:
评论

相关推荐

    VC++ MFC 如何用 CZip CUnzip类压缩解压缩文件

    例如`myUnzip.Extract("target_path_in_zip\\source_file.txt", "destination_folder\\source_file.txt");`。 4. **获取ZIP信息:** 可以使用`GetFileCount`、`GetFileInfo`等函数获取ZIP文件的信息,例如文件数量...

    Centos离线安装zip和unzip

    一些情况下, 服务器不联网, 则安装一些常用的命令比较麻烦, 本资源提供 Centos 离线安装 zip 和 unzip 命令和安装方法, 文件包含 unzip-6.0-21.el7.x86_64.rpm 和 zip-3.0-11.el7.x86_64.rpm以及安装命令。

    java8看不到源码-VBSAC:用于c代码错误检测的基于值的静态分析器

    java8 看不到源码VBSAC ...upzip bug-visualizer.zip unzip engine-3.0.zip 目前,我们收到 Llvm-IR *.ll .ll 作为输入。 我们使用example.c来说明工具链。 编译源代码 # compile the c into ll with debug

    基于算数编码的zip压缩程序

    【标题】"基于算数编码的zip压缩程序"揭示了这个程序的核心技术是利用算数编码来实现数据压缩,这是与传统的 Huffman 编码或LZ77编码不同的压缩策略。算数编码是一种熵编码方法,它通过在[0, 1)区间内分配概率值来...

    基于javascript的压缩和解压缩以及文件系统的demo

    在这个demo中,`upzip.html`和`test.html`可能展示了如何使用这个API将zip文件解压到这个文件系统,并进行相关操作。 3. **Deflate.js & Inflate.js**: - 这两个文件分别对应了数据的压缩和解压缩功能。Deflate....

    纯vbs实现zip压缩与unzip解压缩函数代码

    在提供的代码中,我们看到纯VBS实现的ZIP压缩和解压缩功能,无需依赖像WinRAR这样的第三方应用程序。这对于那些希望在没有额外软件的情况下进行文件处理的用户来说非常有用。 **ZIP压缩函数**: 在`Zip`子程序中,...

    unzip在线解压工具

    ZIP是一种广泛使用的文件归档格式,能够将多个文件和文件夹打包成一个单一的压缩文件,以节省存储空间和加快传输速度。 在提供的压缩包子文件的文件名称列表中,我们可以看到以下文件: 1. phpZipExt.dll:这是一...

    six-degree-of-separation:这是我用Java编写的一个程序,用于将六度分离的概念应用到电影行业中。 我使用的数据来自 iMDB

    六度分离这是我用Java编写的一个程序,用于将六度分离的概念应用到电影行业中。... ftp://ftp.fu-berlin.de/pub/misc/movies/database/ 运行程序时,记得将数据upzip 并与java 代码放在同一目录中。

    inside VC 5 code&Tool002&018&034

    inside VC 5 code&Tool002&018&034, becauss maybe some error .so I retransfer the 002 , 018 and 034, please upzip as those file.

    Sketch-HTML-Export, 将artboards导出到 HTML & CSS的草图插件.zip

    Sketch-HTML-Export, 将artboards导出到 HTML & CSS的草图插件 Sketch-HTML-Export将artboards导出到 HTML & CSS的草图插件下载&安装下载插件...Upzip下载文件并双击"html 。sketchplugin"。 它会自动安装。使用插件

    multithread extend23

    because the part02 and part03 maybe error. so I retransfer it as a packet, please upzip it as part02 and part03

    pycharm2018.3之golang插件

    1. **打开PyCharm设置**:启动PyCharm,进入“File”菜单,然后选择“Settings”(对于Mac用户,应选择“Preferences”)。 2. **进入插件管理**:在设置窗口中,找到并点击“Plugins”选项卡。这里列出了已安装...

    angular-phonecat:Inhouse Group 的应用程序演示 - Lauri Jalonen - Web 开发人员角色

    系统要求(已测试) ... 3.upzip 到 C:\Users[Username]\angular-phonecat 4.open Node.js 命令 5.type cd angular-phonecat 6.type npm start 7.打开浏览器,输入 localhost:8000/app/ 注意: 第一次在nodejs

    ASP.NET在线压缩和解压缩

    4. **文件处理流程**:在`AttachmentUnZip.cs`和`UnZipClass.cs`两个类中,通过`UpZip`方法接收压缩文件路径作为参数,然后实例化`UnZipClass`对象来执行解压操作。`UnZipClass`类中的`UnZip`方法实现了核心的解压缩...

    rarlinux-3.8.0.tar.gz

    "upzip and make install" 这个描述暗示了安装此软件包的过程。在Linux中,通常需要先使用"unzip"命令来解压文件,然后进入解压后的目录,使用"make"命令来编译源代码,最后执行"make install"将编译好的程序安装到...

    非常方便的php在线解压工具

    通常网站从本地上传到服务器,传统的ftp上传软件一个几兆的文件夹(n多个文件组成)要传上几个小时,打包文件夹,上传到服务器,然后在线运行upzip.php,输入上传的打包文件名,轻松解压,非常酷!以往几个小时的...

    P1_investnorm

    概述 这是论文的原始源代码,它针对不相关代码...paper1_resconvert1.py upzip paper1_results_Aug8.7z用于实验结果(1)创建图的中间数据时需要trainy_summary2csv (2)hv_medianplot3in1用于创建图(c),变量'pro

    node-modules:一个基于esbuild的构建没有依赖项的Node.js库的脚手架工具

    节点模块 一个用于基于esbuild构建不dependencies的Node.js库的模板。 原则是package.json没有dependencies ,每个依赖项都内置了dist库。 快速开始 单击“ Use this template作为您的存储库”。...

Global site tag (gtag.js) - Google Analytics