Java tutorial
//package com.java2s; import java.io.ByteArrayOutputStream; import java.util.zip.Deflater; public class Main { public static byte[] compress(byte[] input) { if (input == null || input.length == 0) return input; Deflater compressor = new Deflater(); compressor.setLevel(Deflater.BEST_COMPRESSION); // Give the compressor the data to compress compressor.setInput(input); compressor.finish(); // Create an expandable byte array to hold the compressed data. // It is not necessary that the compressed data will be smaller than // the uncompressed data. ByteArrayOutputStream bos = new ByteArrayOutputStream(input.length); // Compress the data byte[] buf = new byte[1024]; while (!compressor.finished()) { int count = compressor.deflate(buf); bos.write(buf, 0, count); } // Get the compressed data return bos.toByteArray(); } }