static void compress(byte[] input, DataOutput out) throws IOException {
Deflater deflater = new Deflater();
deflater.setLevel(Deflater.DEFAULT_COMPRESSION);
deflater.setStrategy(Deflater.FILTERED);
deflater.setInput(input);
deflater.finish();
byte[] buf = new byte[1024];
while (!deflater.finished()) {
int count = deflater.deflate(buf);
out.write(buf, 0, count);
}