package org.nhooo.example.zip;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
public class ZipFileExample {
public static void main(String[] args) {
try {
//创建ZipFile实例以读取zip文件
//叫做sample.zip
ZipFile zip = new ZipFile(new File("data.zip"));
//在这里,我们开始迭代其中的每个条目
//sample.zip
for (Enumeration e = zip.entries(); e.hasMoreElements(); ) {
//获取ZipEntry,它是文件还是目录
ZipEntry entry = (ZipEntry) e.nextElement();
//获取有关条目的一些信息,例如
//文件名,其大小。
System.out.println("File name: " + entry.getName()
+ "; size: " + entry.getSize()
+ "; compressed size: "
+ entry.getCompressedSize());
System.out.println();
//现在我们要获取该条目的内容。
//获取InputStream,我们通读输入
//流,直到读取所有内容。
InputStream is = zip.getInputStream(entry);
InputStreamReader isr = new InputStreamReader(is);
char[] buffer = new char[1024];
while (isr.read(buffer, 0, buffer.length) != -1) {
String s = new String(buffer);
//在这里,我们只打印出内部的内容
//缓冲。
System.out.println(s.trim());
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}