2012-09-21 133 views

回答

8
// With 'gzip' being the compressed buffer 
java.io.ByteArrayInputStream bytein = new java.io.ByteArrayInputStream(gzip); 
java.util.zip.GZIPInputStream gzin = new java.util.zip.GZIPInputStream(bytein); 
java.io.ByteArrayOutputStream byteout = new java.io.ByteArrayOutputStream(); 

int res = 0; 
byte buf[] = new byte[1024]; 
while (res >= 0) { 
    res = gzin.read(buf, 0, buf.length); 
    if (res > 0) { 
     byteout.write(buf, 0, res); 
    } 
} 
byte uncompressed[] = byteout.toByteArray(); 
5

下面的方法可能会给你一个开始: -

public static byte[] decompress(byte[] contentBytes){ 
     ByteArrayOutputStream out = new ByteArrayOutputStream(); 
     try{ 
      IOUtils.copy(new GZIPInputStream(new ByteArrayInputStream(contentBytes)), out); 
     } catch(IOException e){ 
      throw new RuntimeException(e); 
     } 
     return out.toByteArray(); 
    } 

确保您有以下在类路径和import他们在你的代码。

import java.util.zip.*; 
import org.apache.commons.io.IOUtils; 
+0

这取决于阿帕奇公地IO的API,这是不是一个标准的Java发布的一部分。 – NovaDenizen