package com.doumee.core.utils; import java.io.ByteArrayInputStream; import java.io.IOException; import java.util.zip.GZIPInputStream; import java.util.zip.GZIPOutputStream; import org.apache.commons.io.output.ByteArrayOutputStream; public class CompressUtil { /** * 对字节数组进行gzip压缩 *

* * @author jgzhang2, 2014-8-13 * * :压缩前的字节数组 * @return:压缩后的字节数组 */ public static byte[] compressByGzip(byte[] str) { if (str == null || str.length == 0) { return null; } ByteArrayOutputStream out = new ByteArrayOutputStream(); GZIPOutputStream gzip; try { gzip = new GZIPOutputStream(out); gzip.write(str); gzip.close(); } catch (IOException e) { e.printStackTrace(); } return out.toByteArray(); } /** *

* * @author jgzhang2, 2014-8-16 * * @param bytesToUncompress * @param encoding * @return * @throws IOException */ public static byte[] uncompressByGzip(byte[] bytesToUncompress, String encoding) throws IOException { if (bytesToUncompress == null || bytesToUncompress.length == 0) { return null; } ByteArrayOutputStream out = new ByteArrayOutputStream(); ByteArrayInputStream in = new ByteArrayInputStream(bytesToUncompress); GZIPInputStream gunzip = new GZIPInputStream(in); byte[] buffer = new byte[256]; int n; while ((n = gunzip.read(buffer)) >= 0) { out.write(buffer, 0, n); } return out.toByteArray(); } }