برای این کار در کلاس های استاندارد JDK کلاسی با نام ZipInputStream وجود دارد، این کلاس متدی با نام getNextEntry دارد که شئ از نوع ZipEntry بر می گرداند که اطلاعات فایل های ذخیره شده درون فایل zip را درون خود دارد:
byte[] buffer = new byte[1024];
try {
File outputFolder = new File("outputFolder");
if (!outputFolder.exists()) {
outputFolder.mkdir();
}
ZipInputStream zipInputStream
= new ZipInputStream(new FileInputStream("test.zip"));
ZipEntry zipEntry = zipInputStream.getNextEntry();
while (zipEntry != null) {
String fileName = zipEntry.getName();
File extractedFile = new File(outputFolder
+ File.separator + fileName);
if (zipEntry.isDirectory()) {
extractedFile.mkdir();
} else {
FileOutputStream fileOutputStream =
new FileOutputStream(extractedFile);
int len;
while ((len = zipInputStream.read(buffer)) > 0) {
fileOutputStream.write(buffer, 0, len);
}
fileOutputStream.close();
}
zipEntry = zipInputStream.getNextEntry();
}
zipInputStream.closeEntry();
zipInputStream.close();
} catch (IOException ex) {
ex.printStackTrace();
}