`
dickgz1z
  • 浏览: 8948 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

java 压缩文件 ZipOutputStream 支持中文

阅读更多
本文转载于:http://www.blogjava.net/xcp/archive/2009/10/30/CompressToZip.html
       最近因为项目的需要,要做一个打包下载..而java提供的java.util.zip.*.......对中文不支持...反来到网上看了一下..要修改java的原代码..而无意之间又发现了ant的打包,直接支持中文打包..当时乐得...下面就是一个简单的例子,注 需要导入ant.jar支持包.

package cn.edu.cuit.disasterSystem.web.struts2.action;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

import org.apache.tools.zip.ZipOutputStream;

/**
 * 
 * @author xcp
 * @version 1.0 Copyright (C), 2009  智能开发实验室 所有 Program Name:灾情信息管理系统
 *          Date: 2009-10-28 下午11:29:42
 */
public class CompressToZip {
    public void zip(String inputFileName) throws Exception {
        String zipFileName = "d:\\批量打包.zip";// 打包后文件名字
        System.out.println(zipFileName);
        zip(zipFileName, new File(inputFileName));

    }

    private void zip(String zipFileName, File inputFile)throws Exception {
        ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFileName));
        zip(out, inputFile, "");
        System.out.println("zip done");
        out.close();
    }
    

    private void zip(ZipOutputStream out, File f, String base) throws Exception {
        if (f.isDirectory()) {
            File[] fl = f.listFiles();
            System.out.println("新增目录元素   " +base+ "/");
            out.putNextEntry(new org.apache.tools.zip.ZipEntry(base + "/"));
            base = base.length() == 0 ? "" : base + "/";
            for (int i = 0; i < fl.length; i++) {
                zip(out, fl[i], base + fl[i].getName());
            }
        } else {
            System.out.println("新增普通文件元素   " +base);
            out.putNextEntry(new org.apache.tools.zip.ZipEntry(base));
            FileInputStream in = new FileInputStream(f);
            int b;
            while ((b = in.read()) != -1) {
                out.write(b);
            }
            in.close();
        }
    }

    public static void main(String[] args) {
        CompressToZip test = new CompressToZip();
        try {
            test.zip("d:\\temp");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
分享到:
评论

相关推荐

    java实现文件解压缩,ZipInputStream,ZipOutputStream

    java实现文件解压缩,ZipInputStream,ZipOutputStream

    ZipOutputStream 压缩文件以及乱码问题解决方案

    在IT行业中,文件压缩是一种常见的数据存储和传输方式,ZipOutputStream是Java标准库中的一个类,用于将数据流写入ZIP格式的压缩文件。本文将深入探讨如何使用ZipOutputStream进行文件压缩,并解决可能出现的乱码...

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

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

    java压缩文件以及文件夹

    本文将深入探讨如何使用Java来处理压缩文件,特别是针对标题提及的“java压缩文件以及文件夹”。我们将主要关注`ZipCompressor.java`这个类,它是实现文件和文件夹压缩的核心工具。 首先,让我们了解`java.util.zip...

    java压缩文件源码--ZipUtils

    // 设置压缩文件入口entry,为被读取的文件创建压缩条目 File tempFile = new File(fileArray[i].toString()); String rootStr = file.getPath(); String entryStr = null; // entry以相对路径的...

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

    总的来说,Java的`java.util.zip`包为处理压缩文件提供了强大的支持,包括ZIP和JAR格式。通过创建如`CompressFileUtils`这样的工具类,我们可以方便地实现文件的解压缩操作,这对于处理资源文件、打包应用或在网络上...

    Java把文件压缩成zip

    在Java中,`java.util.zip`包提供了对ZIP文件格式的支持。该包包含了多个类,如`ZipEntry`、`ZipOutputStream`等,它们可以用于创建和管理ZIP文件。通常情况下,文件压缩是在客户端或服务器端执行的任务,用于减少...

    java后台批量下载文件并压缩成zip下载的方法

    Java后台批量下载文件并压缩成zip下载的方法 Java后台批量下载文件并压缩成zip下载的方法是指在Java后台中批量下载文件,并将其压缩成zip文件下载到本地桌面。该方法具有重要的参考价值,感兴趣的小伙伴们可以参考...

    JAVA文件压缩与解压缩实践(源代码+论文)

    1. **Java压缩库**:Java标准库提供了`java.util.zip`包,它包含了多种压缩和解压缩的类,如`ZipOutputStream`、`ZipInputStream`、`GZIPOutputStream`和`GZIPInputStream`,用于处理ZIP和GZIP格式的文件。...

    java压缩文件解压缩和文件的压缩

    2. **压缩文件**: 使用`ZipOutputStream`,你可以将文件或目录添加到ZIP文件中。首先,创建一个`ZipOutputStream`实例,然后通过调用`putNextEntry`方法开始新的`ZipEntry`,接着使用`write`方法写入文件数据,最后...

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

    首先,我们需要了解Java中的`java.util.zip`包,这个包提供了对ZIP文件格式的支持。`ZipOutputStream`类用于创建ZIP文件,它可以接受一个`OutputStream`实例,通过调用`putNextEntry`和`write`方法来添加新的ZIP条目...

    java文件分割压缩

    5. **压缩与解压缩**:在Java中,`java.util.zip`包提供了对ZIP文件的操作支持。`ZipOutputStream`可以用来创建ZIP文件,将多个小文件合并成一个压缩包;而`ZipInputStream`则可以用来读取和解压缩ZIP文件。在`...

    用java对文件进行压缩并且解决乱码问题

    `ZipOutputStream`是Java标准库中的一个类,它继承自`FilterOutputStream`,用于创建ZIP格式的压缩文件。当我们使用这个类进行文件压缩时,可能会遇到乱码问题,主要是因为编码设置不当导致的。下面我们将详细探讨...

    Java实现的带密码压缩与解压zip文件源码

    在Java编程环境中,处理压缩和解压缩文件是一项常见的任务,特别是在数据存储、文件传输和备份等领域。本项目专注于使用Java实现带密码保护的ZIP文件的压缩和解压功能。这是一项安全措施,允许用户对敏感文件进行...

    解压zip压缩文件,支持多文件目录解压,中文乱码问题

    在使用Java对ZIP压缩文件进行解压的方式中有两种,一种是使用apache提供的ant.jar工具包,但是如果ZIP文件中含有中文名称的文件,在解压后,文件名将出现乱码,另一种是使用Java自身JDK中java.util.zip包下工具类,...

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

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

    java压缩文件代码

    ### Java压缩文件代码详解:基于Zip格式的文件压缩技术 #### 概述 在Java编程中,处理文件压缩是一项常见的需求,特别是在数据传输、存储优化或归档管理方面。Java标准库提供了强大的压缩功能,其中最常用的是基于...

    java压缩批量文件打包

    Java标准库提供了一个名为`java.util.zip`的包,该包包含了一系列类,如ZipOutputStream和GZIPOutputStream,可以用来创建ZIP和GZIP格式的压缩文件。但是,如果需要处理更复杂的任务,如批量打包,Ant则更为合适。 ...

Global site tag (gtag.js) - Google Analytics