Here you can find the source of zipDirectory(File folder, File outputFile)
public static void zipDirectory(File folder, File outputFile) throws IOException
//package com.java2s; //License from project: Open Source License import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; public class Main { public static void zipDirectory(File folder, File outputFile) throws IOException { ZipOutputStream zos = null; try {//from w ww .jav a 2 s.c om zos = new ZipOutputStream(new FileOutputStream(outputFile)); zip(folder, folder, zos); zos.close(); } catch (IOException ioException) { throw ioException; } finally { try { if (zos != null) { zos.close(); } } catch (IOException ioException) { } } } private static void zip(File directory, File base, ZipOutputStream zos) throws IOException { File[] files = directory.listFiles(); byte[] buffer = new byte[8192]; int read = 0; for (int i = 0, n = files.length; i < n; i++) { if (files[i].isDirectory()) { zip(files[i], base, zos); } else { FileInputStream in = new FileInputStream(files[i]); ZipEntry entry = new ZipEntry(files[i].getPath().substring(base.getPath().length() + 1)); zos.putNextEntry(entry); while (-1 != (read = in.read(buffer))) { zos.write(buffer, 0, read); } in.close(); } } } }