本文介绍在Android中使用GZIPInputStream进行解压缩的方法,通过测试,本方法同样适用于通过c#中的GZipStream压缩后的数据解压。参数 base64String 为压缩过的且转换为 Base64 编码后的字符串,原始字符串参用的是 UTF-8 编码。
public String Decompress(String base64String) throws IOException{ byte[] t = Base64.decode(base64String, Base64.DEFAULT); ByteArrayOutputStream out = new ByteArrayOutputStream(); ByteArrayInputStream in = new ByteArrayInputStream(t); GZIPInputStream gzip = new GZIPInputStream(in); try{ byte[] buffer = new byte[4096]; int n = 0; while((n = gzip.read(buffer, 0, buffer.length)) > 0){ out.write(buffer, 0, n); } }finally{ gzip.close(); } in.close(); out.close(); return out.toString("UTF-8"); //还原为原始编码的字符串 }