`

读取zip文件

    博客分类:
  • java
 
阅读更多
package com.me.admin.test;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;

/**
* 读取压缩包(.zip)里面的文件
*
* @author dj
*
*/
public class DecZip {

    public static void main(String args[]) {
        String file = "E://flipbook.zip";
        String saveRootDirectory="E://test/";
        zipFileRead(file,saveRootDirectory);
    }

    private static void zipFileRead(String file,String saveRootDirectory) {
        try {
            ZipFile zipFile = new ZipFile(file);
            @SuppressWarnings("unchecked")
            Enumeration<ZipEntry> enu = (Enumeration<ZipEntry>) zipFile.entries();
            while (enu.hasMoreElements()) {
                ZipEntry zipElement = (ZipEntry) enu.nextElement();
                InputStream read = zipFile.getInputStream(zipElement);
                String fileName = zipElement.getName();
                if (fileName != null && fileName.indexOf(".") != -1) {//是否为文件 (文件带有路径如:/images/a.jpg)
                    execute(zipElement,read,saveRootDirectory);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private static void execute(ZipEntry ze, InputStream read,String saveRootDirectory)
            throws FileNotFoundException, IOException {
        //如果只读取图片,自行判断就OK.
        String fileName = ze.getName();
//        if(fileName.lastIndexOf(".jpg")!= -1 || fileName.lastIndexOf(".bmp")!= -1
//            || fileName.lastIndexOf(".jpeg")!= -1){//指定要解压出来的文件格式(这些格式可抽取放置在集合或String数组通过参数传递进来,方法更通用)
            File file = new File(saveRootDirectory + fileName);
            if (!file.exists()) {
                File rootDirectoryFile = new File(file.getParent());
                //创建目录
                if (!rootDirectoryFile.exists()) {
                    boolean ifSuccess = rootDirectoryFile.mkdirs();
                    if (ifSuccess) {
                        System.out.println("文件夹创建成功!");
                    } else {
                        System.out.println("文件创建失败!");
                    }
                }
                //创建文件
                try {
                    file.createNewFile();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            //写入文件
            BufferedOutputStream write = new BufferedOutputStream(new FileOutputStream(file));
            int cha = 0;
            while ((cha = read.read()) != -1) {
                write.write(cha);
            }
            //要注意IO流关闭的先后顺序
            write.flush();
            write.close();
            read.close();
//        }
    }
}
分享到:
评论

相关推荐

    详解Java无需解压直接读取Zip文件和文件内容

    "Java读取Zip文件和文件内容" Java无需解压直接读取Zip文件和文件内容是Java语言中的一种常见操作,通过使用java.util.zip包中的ZipFile、ZipInputStream和ZipEntry类,我们可以轻松地读取Zip文件和文件内容。下面...

    编程方式读写ZIP文件(C++).rar

    本文将详细探讨如何在C++中以编程方式读写ZIP文件。 首先,你需要一个库来处理ZIP文件,因为C++标准库并不直接支持ZIP操作。一种常用的库是libzip,它提供了读取、创建、修改和删除ZIP文件的功能。安装libzip后,你...

    java读取zip文件

    在Java编程环境中,读取ZIP文件是一项常见的任务,特别是在处理归档数据或打包资源时。以下将详细讲解如何使用Java来实现这一功能。 首先,Java提供了`java.util.zip`包,该包包含了处理ZIP文件所需的类,如`...

    读取zip文件,不解压缩直接解析,支持文件名中文,解决内容乱码(还是以支付宝对账单为例)

    在读取ZIP文件时,我们首先需要打开ZIP文件并创建一个ZIP文件对象。然后,通过迭代这个对象,我们可以访问每个条目(即压缩的文件或目录),获取其文件名和内容。关键在于正确处理文件名的编码。在某些情况下,...

    js解压读取zip文件

    `zip.js`是一个轻量级的库,它提供了在浏览器环境中读取、创建和操作ZIP文件的功能。本篇文章将深入探讨如何使用`zip.js`来解压并读取ZIP文件。 首先,为了使用`zip.js`,你需要将其引入到你的项目中。如果你使用的...

    C++编程的方式读写ZIP文件,基于ZipLib封装的库

    本文将深入探讨如何利用ZipLib库在C++中进行ZIP文件的读写操作。ZipLib是一个用C编写的库,用于处理ZIP档案,而我们的任务是通过在C++中对其进行封装,以便更方便地进行压缩和解压缩。 首先,我们需要理解ZIP文件...

    Flex Air压缩和读取zip文件

    Flex Air压缩和读取zip文件是一项在开发过程中经常会遇到的任务,尤其在处理大量数据或文件传输时。这个主题主要涉及到Flex、Adobe AIR以及ZipArchive库的使用。让我们深入了解一下这些概念和技术。 首先,Flex是一...

    delphi解压ZIP文件

    - 调用 `ReadZip` 方法来读取ZIP文件的信息。 - ```pascal VCLUnZip1.ReadZip; ``` 5. **设置解压目标目录:** - 使用 `DestDir` 属性指定解压后文件的目标目录。 - ```pascal VCLUnZip1.DestDir := desPath...

    递归读取zip文件及其子文件结构

    `递归读取zip文件及其子文件结构`这个标题指的是一个功能强大的工具类,它能够帮助开发者遍历并访问ZIP文件内的所有文件和子目录,包括嵌套的ZIP文件。这个Java工具类设计得易于使用,可以直接集成到项目中,为处理...

    在Symbian OS中读取ZIP文件

    CzipFile类提供了读取和操作ZIP文件的功能,允许开发者在应用程序中解压和访问ZIP文件内的内容。 1. **打开ZIP文件** 要读取ZIP文件,首先需要创建CzipFile对象。这通常通过两阶段构造函数完成,传入文件服务器...

    使用Zlib完成取ZIP压缩包中文件

    Zlib库通过其贡献模块minizip提供了对ZIP文件的读写支持。 描述中提到,这个项目是基于Zlib库1.2.3版本的Contrib子目录下的minizip程序。minizip是一个简单的接口,允许开发者用C语言编写应用程序来操作ZIP文件。...

    JSZip使用Javascript创建读取和编辑zip文件

    JSZip是一款纯JavaScript编写的库,它允许开发者在浏览器端创建、读取和编辑ZIP文件。这个库的强大之处在于,无需任何服务器端支持,就可以在客户端处理ZIP文件,这对于前端开发者来说是一个非常实用的工具。下面...

    ZIP文件损坏修复

    5. **电源故障**:在读写ZIP文件的过程中突然断电,可能会造成文件系统错误,导致ZIP文件损坏。 **检测ZIP文件损坏的方法** 1. **尝试解压**:最简单的方法是尝试用常用的压缩软件(如WinRAR、7-Zip)进行解压。...

    poi.zip java读取excel文件

    Java 读取 Excel 文件是许多开发任务中的常见需求,Apache POI 是一个广泛使用的开源库,专门用于处理 Microsoft Office 格式的文件,包括 Excel。在本案例中,提供的压缩包 "poi.zip" 包含了两个子文件:poi-bin-...

    解压zip文件,读取zip文件中的详细信息程序代码

    本文将深入探讨如何解压ZIP文件并读取其中的详细信息,包括文件名、日期时间戳、文件大小等。我们将通过一个名为`unzip.c`的C语言源码来讲解这一过程。 首先,我们需要了解ZIP文件格式。ZIP是一种容器格式,它将多...

    C++实现ZIP文件解压

    1. **读取ZIP文件头**:解压过程的第一步是识别ZIP文件的起始标识符,即`PK\003\004`。这表示ZIP文件的中央目录头。找到此标志后,你可以解析后续的字段以获取关于文件的信息。 2. **解析中央目录**:在找到目录头...

    php生成zip文件类.zip

    在生成或读取ZIP文件时,要确保输入来源的安全性,防止可能的文件注入攻击。在添加文件时,验证文件路径的有效性,避免添加到不应该包含的路径。 9. **错误处理**: 在操作ZIP文件时,应适当地处理可能出现的错误...

    Python3读取zip文件信息的方法

    4. `open(name, mode='r')`:打开ZIP文件中的一个条目,返回一个文件对象,可以进行读写操作。 ```python with zip_obj.open('file_name.txt', 'r') as file_in_zip: content = file_in_zip.read() print...

    php的zip文件内容比较类.zip

    使用这个类,你可以打开一个ZIP文件,获取其中的文件列表,读取文件内容,并添加或删除文件。 以下是一些关于如何使用ZipArchive类的基本操作: 1. 打开ZIP文件: ```php $zip = new ZipArchive(); if ($zip-&gt;open...

    java zipentry.jar 解决解压失败问题

    Java的`java.util.zip`包提供了对ZIP文件的支持,包括`ZipInputStream`和`ZipOutputStream`类用于读写ZIP文件,以及`ZipEntry`类来代表ZIP文件中的单个条目。当我们尝试用这些类解压含有中文名的文件时,如果未正确...

Global site tag (gtag.js) - Google Analytics