Java GZip Read getGzippedBytesAsString(byte[] bytes)

Here you can find the source of getGzippedBytesAsString(byte[] bytes)

Description

get Gzipped Bytes As String

License

Open Source License

Declaration

public static String getGzippedBytesAsString(byte[] bytes) 

Method Source Code


//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();
    }
}

Related

  1. getGzipByteArrayOutputStream(String domJson)
  2. getGZIPContents(File f)
  3. getGzipExpandedBytes(File file)
  4. getGZippedContent(byte[] content)