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();
}
}
}