import net.lingala.zip4j.io.inputstream.ZipInputStream; import net.lingala.zip4j.model.LocalFileHeader; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.File; import java.io.IOException; public class SampleClass{ public static void main(String[] args) throws IOException{ LocalFileHeader lfh = null; byte[] buffer = new byte[3072]; FileInputStream fis = new FileInputStream(new File("myzip.zip")); try(ZipInputStream zis = new ZipInputStream(fis, "password".toCharArray())){ while((lfh = zis.getNextEntry()) != null){ File extractedFile = new File(lfh.getFileName()); try(FileOutputStream fos = new FileOutputStream("extracted/"+extractedFile)){ int len = 0; while((len = zis.read(buffer)) != -1) fos.write(buffer); } } } } }