Here you can find the source of getGzippedBytesAsString(byte[] bytes)
public static String getGzippedBytesAsString(byte[] bytes)
//package com.java2s; /* $RCSfile$/*w w w .jav a2s . c o m*/ * $Author$ * $Date$ * $Revision$ * * Copyright (C) 2006 The Jmol Development Team * * Contact: jmol-developers@lists.sf.net * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * 02110-1301, USA. */ import java.io.BufferedInputStream; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.util.zip.GZIPInputStream; public class Main { public static String getGzippedBytesAsString(byte[] bytes) { try { InputStream is = new ByteArrayInputStream(bytes); do { is = new BufferedInputStream(new GZIPInputStream(is)); } while (isGzip(is)); String s = getZipEntryAsString(is); is.close(); return s; } catch (Exception e) { return ""; } } public static boolean isGzip(byte[] bytes) { return (bytes != null && bytes.length > 2 && bytes[0] == (byte) 0x1F && bytes[1] == (byte) 0x8B); } public static boolean isGzip(InputStream is) throws Exception { byte[] abMagic = new byte[4]; is.mark(5); is.read(abMagic, 0, 4); is.reset(); return isGzip(abMagic); } public static String getZipEntryAsString(InputStream is) throws IOException { StringBuffer sb = new StringBuffer(); byte[] buf = new byte[1024]; int len; while (is.available() >= 1 && (len = is.read(buf)) > 0) sb.append(new String(buf, 0, len)); return sb.toString(); } }