Java tutorial
//package com.java2s; import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.IOException; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; public class Main { private static final int BUFFER_SIZE = 8192; private static String parentPath = ""; private static void zipFile(ZipOutputStream zipOutputStream, String sourcePath) throws IOException { java.io.File files = new java.io.File(sourcePath); java.io.File[] fileList = files.listFiles(); String entryPath = ""; BufferedInputStream input = null; for (java.io.File file : fileList) { if (file.isDirectory()) { zipFile(zipOutputStream, file.getPath()); } else { byte data[] = new byte[BUFFER_SIZE]; FileInputStream fileInputStream = new FileInputStream(file.getPath()); input = new BufferedInputStream(fileInputStream, BUFFER_SIZE); entryPath = file.getAbsolutePath().replace(parentPath, ""); ZipEntry entry = new ZipEntry(entryPath); zipOutputStream.putNextEntry(entry); int count; while ((count = input.read(data, 0, BUFFER_SIZE)) != -1) { zipOutputStream.write(data, 0, count); } input.close(); } } } }