注意 使用的编码与解压使用的编码一致
1.压缩
/**
*Title: compress
*Description:
*@param str
*@return byte[]
*/
public static byte[] compress(String str) {
if (str ==null || str.length() ==0) {
return null;
}
ByteArrayOutputStream out =new ByteArrayOutputStream();
try {
GZIPOutputStream gzip = new GZIPOutputStream(out);
gzip.write(str.getBytes("utf-8"));
gzip.close();
return out.toByteArray();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
2.解压
/**
*Title: uncompressToString
*Description:解压缩
*@param bytes
*@return
*/
public static String uncompressToString(byte[] bytes) {
return uncompressToString(bytes, "utf-8");
}
public static String uncompressToString(byte[] bytes, String encoding) {
if (bytes == null || bytes.length == 0) {
return null;
}
ByteArrayOutputStream out = new ByteArrayOutputStream();
ByteArrayInputStream in = new ByteArrayInputStream(bytes);
try {
GZIPInputStream ungzip = new GZIPInputStream(in);
byte[] buffer = new byte[256];
int n;
while ((n = ungzip.read(buffer)) >= 0) {
out.write(buffer, 0, n);
}
return out.toString(encoding);
} catch (IOException e) {
WebServiceLog.error(e);
}
return null;
}