public class GzipUtil {
/**
* 使用gzip压缩字符串
*/
public static String compress(String str) {
if (str == null || str.length() == 0) {
return str;
}
ByteArrayOutputStream out = new ByteArrayOutputStream();
GZIPOutputStream gzip = null;
try {
gzip = new GZIPOutputStream(out);
gzip.write(str.getBytes());
} catch (IOException e) {
e.printStackTrace();
} finally {
if (gzip != null) {
try {
gzip.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return new sun.misc.BASE64Encoder().encode(out.toByteArray());
}
/**
* 使用gzip解压缩
*/
public static String uncompress(String str) {
if (str == null || str.length() == 0) {
return str;
}
ByteArrayOutputStream out = new ByteArrayOutputStream();
ByteArrayInputStream in = null;
GZIPInputStream zip = null;
byte[] compressed;
String decompressed = null;
try {
compressed = new sun.misc.BASE64Decoder().decodeBuffer(str);
in = new ByteArrayInputStream(compressed);
zip = new GZIPInputStream(in);
byte[] buffer = new byte[1024];
int offset = -1;
while ((offset = zip.read(buffer)) != -1) {
out.write(buffer, 0, offset);
}
decompressed = out.toString();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (zip != null) {
zip.close();
}
if (in != null) {
in.close();
}
if (out != null) {
out.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return decompressed;
}
}
java字符压缩(zip)
于 2023-03-16 15:56:50 首次发布
该代码提供了一个名为GzipUtil的Java类,包含两个静态方法:compress和uncompress。compress方法用于将字符串使用gzip算法压缩并转换为BASE64编码的字符串,而uncompress方法则将BASE64编码的gzip压缩字符串解压缩回原始字符串。
摘要由CSDN通过智能技术生成