Here you can find the source of decompress(byte[] data)
public static byte[] decompress(byte[] data) throws Exception
//package com.java2s; //License from project: Apache License import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.util.zip.GZIPInputStream; public class Main { public static final int BUFFER = 1024; public static final String EXT = ".gz"; public static byte[] decompress(byte[] data) throws Exception { ByteArrayInputStream bais = new ByteArrayInputStream(data); ByteArrayOutputStream baos = new ByteArrayOutputStream(); decompress(bais, baos);//from w w w. j av a2 s. c om data = baos.toByteArray(); baos.flush(); baos.close(); bais.close(); return data; } public static void decompress(File file) throws Exception { decompress(file, true); } public static void decompress(File file, boolean delete) throws Exception { FileInputStream fis = new FileInputStream(file); FileOutputStream fos = new FileOutputStream(file.getPath().replace(EXT, "")); decompress(fis, fos); fis.close(); fos.flush(); fos.close(); if (delete) { file.delete(); } } public static void decompress(InputStream is, OutputStream os) throws Exception { GZIPInputStream gis = new GZIPInputStream(is); int count; byte data[] = new byte[BUFFER]; while ((count = gis.read(data, 0, BUFFER)) != -1) { os.write(data, 0, count); } gis.close(); } public static void decompress(String path) throws Exception { decompress(path, true); } public static void decompress(String path, boolean delete) throws Exception { File file = new File(path); decompress(file, delete); } }