可以在不经过解压文件的情况下,直接读取压缩文件内文件内容。
ZipFile zip = new ZipFile(fileName);
for (Enumeration<? extends ZipEntry> entries = zip.entries(); entries.hasMoreElements();) {
ZipEntry entry = entries.nextElement();
String zipEntryName = entry.getName();
long size = entry.getSize();
System.out.println("name = " + zipEntryName + ", size = " + size);
BufferedReader br = new BufferedReader(new InputStreamReader(zip.getInputStream(entry), "unicode"));
String line = br.readLine();
while (line != null) {
System.out.println(line);
line = br.readLine();
}
}
zip.close();
ps:示例代码中没有判断文件是否为目录;
ps2:打开文件时需要使用正确的文件字符集,否则可能文件内容无法正确识别;
ps3:ZipFile在使用后需要关闭,否则当需要打开多个压缩文件时可能出现缓存异常;