IOUtils.copy(zip.getInputStream(), f);
f.close();
// open up the zip file
HeaderReader r = new HeaderReader(new RandomAccessFile(tmp, "r"));
ZipModel model = r.readAllHeaders();
model.setZipFile(tmp.getAbsolutePath());
Map<String, Object> map = zipFile.serialize();
List<?> fhs = model.getCentralDirectory().getFileHeaders();
for (Object _fh : fhs) {
FileHeader fh = (FileHeader) _fh;
UnzipEngine en = new UnzipEngine(model, fh);
// this will read the local file header
en.getInputStream();