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