`
IvanLi
  • 浏览: 602898 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用java zip 压缩文件目录

阅读更多

@Test
    public void testPackageContent() {
        try {
            FileOutputStream f = 
                new FileOutputStream(BASE_PATH + "/../" + packageName + ".zip");
            CheckedOutputStream csum = 
                new CheckedOutputStream(f, new Adler32());//Adler32 is faster than CRC32
            ZipOutputStream out = 
                new ZipOutputStream(new BufferedOutputStream(csum));
            out.setComment("some comments");
            File srcDir = new File(BASE_PATH);
            zipFile(out, srcDir, "packageName");
            out.close();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    
    /**
     * zip the given file
     * @param out - ZipOutputStream
     * @param srcDir - if it is a file then add this file into zip, if it is dir, then call zipFile cascade
     * @param filePath - the filepath in zipfile
     * @throws IOException
     */
    private void zipFile(ZipOutputStream out, File srcDir, String filePath) throws IOException{
        for(File file : srcDir.listFiles()){
            if(file.isDirectory()){
                zipFile(out, file, filePath+"/"+file.getName());
                continue;
            }
            Logger.global.info("Writing file : "+file.getName());
            FileInputStream in = new FileInputStream(file);
            out.putNextEntry(new ZipEntry(filePath+"/"+file.getName()));
            byte[] b = new byte[1024];
            int off = 0;
            while((in.read(b,off,1024)) != -1){
                out.write(b);
            }
            in.close();
        }
    }
分享到:
评论
2 楼 luzl 2010-03-23  
while((in.read(b,off,1024)) != -1){  
 out.write(b);  
} 


这儿有个小defect,如果末尾有空行的话就会把最后面的数据写到这一行,所以需要清空 b,当然写的时候定长也行,读了多少个字节就写多少个字节.

int readByteLength=0;
while((readByteLength=in.read(b,off,60)) != -1){
   out.write(b,off,readByteLength);
}
1 楼 luzl 2010-03-23  
用你的代码干活了,谢谢啊,你要是加点注释就好了。

相关推荐

    java压缩zip文件解决中文乱码问题

    zipEntry.setComment("压缩文件"); // 可以添加注释,同样需要指定字符集 zos.putNextEntry(zipEntry); try (BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file))) { byte[] buffer...

    java解压zip压缩文件

    在Java编程环境中,解压ZIP压缩文件是一项常见的任务,它涉及到文件I/O操作以及对ZIP文件格式的理解。本文将深入探讨如何使用Java实现这一功能,同时也会提及`UnZip.java`和`UnZip2.java`这两个文件可能包含的实现...

    java 中 zip压缩文件解压工具类

    本文将深入探讨如何使用Java来处理ZIP文件,特别是针对标题所提及的“java 中 zip压缩文件解压工具类”。我们将讨论核心的Java API,如`java.util.zip`包中的类,并通过一个名为`CompressFileUtils`的工具类来展示...

    java zip文件压缩 可以对目录进行压缩

    使用java的zip压缩库 对文件和文件夹实现压缩

    java 操作Zip文件(压缩、解压、加密).zip

    Java操作Zip文件主要涉及到对文件和目录的压缩与解压缩,以及在必要时对压缩文件进行加密处理。这里我们重点讨论使用两个库:`zip4j`和`Apache Ant`来实现这些功能。 1. **zip4j库**:`zip4j-1.3.2.jar`是一个用...

    基于Java向zip压缩包追加文件

    当需要向已存在的ZIP文件追加文件时,首先使用`ZipUtil`解压缩ZIP文件到一个临时目录,然后在该目录中添加新的文件,最后重新压缩整个目录并覆盖原有的ZIP文件。以下是大致的步骤: - 使用`ZipUtil`的`unzip`方法...

    zip 压缩 文件 Java

    在Java编程语言中,处理ZIP压缩文件是一项常见的任务,它涉及到文件和目录的打包与解压。本篇文章将深入探讨如何使用Java实现ZIP文件的压缩和解压缩操作,以及涉及的相关知识点。 首先,理解ZIP文件格式是基础。ZIP...

    java多文件压缩成zip文件并实现下载

    在Java编程中,将多个文件压缩成一个ZIP文件并实现下载是一个常见的任务,尤其是在处理大量数据或文件分发时。...同时,为了提高性能和用户体验,可以考虑使用异步处理或多线程来压缩文件,特别是当处理大量大文件时。

    Java调用Zip类批量压缩多个文件.rar

    //文件数据(待压缩文件)  JButton jbAdd; //增加文件按钮  JButton jbDelete; //删除文件按钮  JButton jbZip; //压缩按钮  JTextField target; //目标文件文本域  public ZipDemo(){  super("用ZIP...

    使用 Java 实现的压缩/解压 ZIP 文件的工具类

    本文将深入探讨如何使用Java实现ZIP文件的压缩与解压,重点讲解核心API,如`java.util.zip`包中的`ZipOutputStream`和`ZipInputStream`。 首先,我们来了解一下ZIP文件格式。ZIP是一种用于存储多个文件到一个单一...

    zip4j--Java操作zip压缩文件接口

    Java操作zip压缩格式的开源项目,功能强大而且使用方便,能完全满足Java操作Zip压缩文件,官方网址为:http://www.lingala.net/zip4j/ 可以下载到jar包、源码和示例,好像没有提供API文档。 不过需要使用代理访问...

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

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

    JAVA文件压缩与解压缩实践,java解压缩zip文件,Java源码.zip

    本实践主要关注如何使用Java来处理ZIP格式的压缩文件,以下将详细介绍相关知识点。 1. **Java档案API(Java Archive API, JAR)** Java标准库提供了一个强大的API来处理各种类型的档案文件,包括ZIP格式。`java....

    java 生成zip压缩文件

    下面我们将详细探讨如何使用Java来生成ZIP压缩文件,以及涉及的相关知识点。 首先,Java标准库提供了`java.util.zip`包,该包包含了处理压缩文件格式(如ZIP和GZ)所需的所有类。在创建ZIP文件时,我们主要会用到`...

    java压缩文件生成带密码的zip包,解压带密码的zip包的工具类

    * 使用给定密码解压指定的ZIP压缩文件到指定目录 * * 如果指定目录不存在,可以自动创建,不合法的路径将导致异常被抛出 * @param zipFile 指定的ZIP压缩文件 * @param dest 解压目录 * @param passwd ZIP文件...

    Java实现将多目录多层级文件打成ZIP包,以及解压ZIP包

    这个库简化了在Java中处理压缩文件的过程,提供了丰富的API供开发者使用。 首先,我们来看`FileUtils.java`中的主要方法。通常,这个类会包含两个核心功能:`zipFiles()`用于创建ZIP包,`unzipFile()`用于解压ZIP包...

    Java把文件压缩成zip

    本文主要介绍如何使用Java实现文件的ZIP压缩功能,并提供了完整的代码示例。通过学习本文,你可以掌握以下几个知识点: 1. 使用`java.util.zip`包中的类进行文件压缩。 2. 如何创建ZIP输出流并写入文件数据。 3. ...

    JAVA解压ZIP多层目录文件(需ant.jar

    ### JAVA解压ZIP多层目录文件(需ant.jar) #### 概述 本文将详细介绍一个Java方法,该方法用于解压包含多层目录结构的ZIP文件,并能够支持中文文件名。这种方法利用了Apache Ant库中的`org.apache.tools.zip....

    java zip文件压缩与解压缩

    要压缩文件到ZIP,我们可以使用`org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream`类。以下是一个简单的示例: ```java import org.apache.commons.compress.archivers.zip.ZipArchiveEntry; ...

    java实现zip压缩文件

    ### Java 实现ZIP压缩文件详解 #### 一、概述 在日常开发工作中,对文件进行压缩处理是一项常见的需求。本文将详细介绍如何使用Java语言来实现文件或文件夹的ZIP格式压缩。通过本教程,读者可以了解到Java标准库...

Global site tag (gtag.js) - Google Analytics