重複の可能性:
gzip されたデータをバイト配列で解凍する方法は?
Gzip されたバイト配列があり、それを解凍して出力を印刷したいだけです。それは次のようなものです:
byte[] gzip = getGZIPByteArray();
/* Code do uncompress the GZIP */
System.out.print(uncompressedGZIP);
真ん中のコードを手伝ってくれる人はいますか?
重複の可能性:
gzip されたデータをバイト配列で解凍する方法は?
Gzip されたバイト配列があり、それを解凍して出力を印刷したいだけです。それは次のようなものです:
byte[] gzip = getGZIPByteArray();
/* Code do uncompress the GZIP */
System.out.print(uncompressedGZIP);
真ん中のコードを手伝ってくれる人はいますか?
// 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();
以下の方法で開始できます:-
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;