使用java自带的类 java.util.zip进行文件/目录的压缩的话,有一点不足,不支持中文的名件/目录命名,如果有中文名,那么打包就会失败。本人经过一段时间的摸索和实践,发现在一般的Ant.jar类库中也有zip类,import org.apache.tools.zip.*,能够解决不支持中文文件目录的问题,同时,Ant的获得途径也比较多,一般的应用服务器中有这个包,实在不行去下载个tomcat5.X,里面也有ant.jar,本人经过测试,可以使用。

  例子如下:

import java.io.File;

import org.apache.tools.zip.ZipOutputStream;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import dianda.cwmanage.*;

import dianda.com.util.Format;

public class CompressBook {  

  public CompressBook() { }

public void zip(String inputFileName) throws Exception {  

  String zipFileName="c:\\test.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();   

    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 {  

      out.putNextEntry(new org.apache.tools.zip.ZipEntry(base));   

      FileInputStream in = new FileInputStream(f);   

      int b;   

      System.out.println(base);

      while ( (b = in.read()) != -1) {    out.write(b);   }  

      in.close();  

} } }

  唯一遗憾,美中不足的是,无论,java.util.zip或者org.apache.tools.zip都不能解压rar工具打成的rar包,搜了半天也找不到采用java解压rar工具打成的包,盼望哪位高人能够提供解压rar工具打成的包,和大家分享一下!

java.util.zip的更多相关文章

  1. java.util.zip.ZipException: invalid entry size 解决办法

    启动maven项目时报java.util.zip.ZipException: invalid entry size (expected 7612 but got 5955 bytes) 可能是mave ...

  2. [Java 基础] 使用java.util.zip包压缩和解压缩文件

    reference :  http://www.open-open.com/lib/view/open1381641653833.html Java API中的import java.util.zip ...

  3. 启动TOMCAT报错 java.util.zip.ZipException: invalid LOC header (bad signature)

    报错信息大致如下所示: at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect. ...

  4. java.util.zip.ZipOutputStream压缩无乱码(原创)

    package io; import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.FileI ...

  5. [java bug记录] java.util.zip.ZipException: invalid code lengths set

    1. 描述:将代码迁移到maven工程,其中用ZipInputStream读取/src/main/resources下的zip文件时报错:“java.util.zip.ZipException: in ...

  6. java.util.zip压缩打包文件总结二: ZIP解压技术

    一.简述 解压技术和压缩技术正好相反,解压技术要用到的类:由ZipInputStream通过read方法对数据解压,同时需要通过CheckedInputStream设置冗余校验码,如: Checked ...

  7. java.util.zip压缩打包文件总结一:压缩文件及文件下面的文件夹

    一.简述 zip用于压缩和解压文件.使用到的类有:ZipEntry  ZipOutputStream 二.具体实现代码 package com.joyplus.test; import java.io ...

  8. java.util.zip.GZIPInputStream.readUByte,Not in GZIP format错误处理

    问题一: 使用webclient抓取网页时报错:(GZIPInputStream.java:207) atjava.util.zip.GZIPInputStream.readUShort(GZIPIn ...

  9. java.util.zip.Deflater 压缩 inflater解压 实例

    原文:java压缩解压缩类实例[转] package com.example.helloworld; import java.io.ByteArrayOutputStream; import java ...

  10. java.util.zip - Recreating directory structure(转)

    include my own version for your reference. We use this one to zip up photos to download so it works ...

随机推荐

  1. 安装WebLogic的详细步骤

    安装WebLogic的详细步骤 1.在官网上下载WebLogic,详细地址如下 WebLogic 2.将WebLogic从官网上下载后wls1036_generic.jar 3.双击"wls ...

  2. 利用Windows性能计数器(PerformanceCounter)监控

    一.概述 性能监视,是Windows NT提供的一种系统功能.Windows NT一直以来总是集成了性能监视工具,它提供有关操作系统当前运行状况的信息,针对各种对象提供了数百个性能计数器.性能对象,就 ...

  3. day8(字符串操作)

    一.字符串操作 1.index  #返回字符串的索引值 s = "Hello word" print(s.index('o')) 2.isalnum #检测字符串是否由字母和数字组 ...

  4. HashMap,LinkedHashMap,TreeMap对比

    共同点: HashMap,LinkedHashMap,TreeMap都属于Map:Map 主要用于存储键(key)值(value)对,根据键得到值,因此键不允许键重复,但允许值重复. 不同点: 1.H ...

  5. textarea的不可拉伸和不可编辑

    不可拉伸: textarea { resize: none; } 不可编辑: 第一种方法: <textarea disabled></textarea> 第二种方法: < ...

  6. 【BZOJ5093】图的价值(第二类斯特林数,组合数学,NTT)

    [BZOJ5093]图的价值(第二类斯特林数,组合数学,NTT) 题面 BZOJ 题解 单独考虑每一个点的贡献: 因为不知道它连了几条边,所以枚举一下 \[\sum_{i=0}^{n-1}C_{n-1 ...

  7. 【BZOJ3143】游走(高斯消元,数学期望)

    [BZOJ3143]游走(高斯消元,数学期望) 题面 BZOJ 题解 首先,概率不会直接算... 所以来一个逼近法算概率 这样就可以求出每一条边的概率 随着走的步数的增多,答案越接近 (我卡到\(50 ...

  8. Poj2749:Building roads

    题意 有 N 个牛栏,现在通过一条通道(s1,s2)要么连到s1,要么连到s2,把他们连起来,他们之间有一些约束关系,一些牛栏不能连在同一个点,一些牛栏必须连在同一个点,现在问有没有可能把他们都连好, ...

  9. postgresql搭建从库

    postgresql搭建从库 master  10.40.196.27 slave   10.40.55.69 需求:master和slave作为主从流复制,当master宕机后,slave切换为新主 ...

  10. 算法精解:DAG有向无环图

    DAG是公认的下一代区块链的标志.本文从算法基础去研究分析DAG算法,以及它是如何运用到区块链中,解决了当前区块链的哪些问题. 关键字:DAG,有向无环图,算法,背包,深度优先搜索,栈,BlockCh ...