java解压乱码

来源:互联网 发布:个人所得税申报软件 编辑:程序博客网 时间:2024/05/22 07:45

上次利用java自动的java.util.zip.ZipEntry和 java.util.zip.ZipFile来解压zip文件,今天发现程序在读取解压文件时居然报了空指针异常,debug程序后发现时读取不到文件,产生原先是zip压缩文件中含有中文的名称,读取文件名为乱码,

报找不到文件名,所以报了空指针,想到ant构建文件也有这个功能,换了apache的ant.jar居然解决了中文的问题。实际上就是在项目中重新引入ant.jar即可

备份下。

import java.io.BufferedReader;import java.io.File;import java.io.IOException;import java.io.InputStreamReader;import java.util.Enumeration;import org.apache.tools.zip.ZipEntry;import org.apache.tools.zip.ZipFile;/** * 读取zip压缩文件中文本的内容 * @author fish */public class ReadZip {  public static void main(String args[]) {    try {      String fileName = "D:/workspace/java/src/ReadZip.zip";      //构造ZipFile      ZipFile zf = new ZipFile(new File(fileName));      //返回 ZIP file entries的枚举.      Enumeration<? extends ZipEntry> entries = zf.getEntries();      while (entries.hasMoreElements()) {        ZipEntry ze = entries.nextElement();        System.out.println("name:"+ze.getName());          long size = ze.getSize();          if (size > 0) {            System.out.println("Length is " + size);            BufferedReader br = new BufferedReader(                new InputStreamReader(zf.getInputStream(ze)));            String line;            while ((line = br.readLine()) != null) {              System.out.println(line.trim());            }            br.close();        }      }    } catch (IOException e) {      e.printStackTrace();    }  }}