This Java - Create Zip file in memory - Read Now

I find myself writing and rewriting this piece of code whenever I want to zip a set of files (in memory) and return the zipped file back as an object in memory. I often use this when the user requests a download of multiple reports and the deployment environment doesn't allow for disk access.

I thought I'd post it here so that I could copy-paste it the next time I need it :) If you've stumbled upon this page, you're free to use the code below too!


private static byte[] createZip(Map files) throws IOException {
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    ZipOutputStream zipfile = new ZipOutputStream(bos);
    Iterator i = files.keySet().iterator();
    String fileName = null;
    ZipEntry zipentry = null;
    while (i.hasNext()) {
        fileName = (String) i.next();
        zipentry = new ZipEntry(fileName);
        zipfile.putNextEntry(zipentry);
        zipfile.write((byte[]) files.get(fileName));
    }
    zipfile.close();
    return bos.toByteArray();
}

1 Response to "This Java - Create Zip file in memory - Read Now"

  1. Whatsapp Web has almost all the features of the Whatsapp mobile application. Whatsapp Messenger users can now get access to their account on web and enjoy the features right from their laptop and PCs
    web.whatsapp.com

    ReplyDelete