可以在不經過解壓文件的情況下,直接讀取壓縮文件內文件內容。
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在使用後需要關閉,否則當需要打開多個壓縮文件時可能出現緩存異常;