Para descomprimir en este ejemplo usaremos la clase Deflater

// le enviamos la informacion a comprimir
Inflater dec = new Inflater();
dec.setInput(datosacomprimir);

ByteArrayOutputStream bostr = new ByteArrayOutputStream(datosacomprimir.length);

// se descomprimen los datos
byte[] bf = new byte[1024];
while (!dec.finished()) {
try {
int count = dec.inflate(bf );
bostr.write(bf , 0, count);
} catch (DataFormatException e) {
}
}
try {
bostr.close();
} catch (IOException e) {
}

// obtenemos los datos descomprimidos
byte[] decompressedData = bostr.toByteArray();