package cn.shtdhr.util;
import org.apache.commons.lang3.StringUtils;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
public class CompressUtils {
/**
* 文本数据gzip压缩
*/
public static String gzipCompress(String text) {
if (StringUtils.isEmpty(text)) {
return null;
}
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
try (GZIPOutputStream gzipOutputStream = new GZIPOutputStream(byteArrayOutputStream)) {
gzipOutputStream.write(text.getBytes(StandardCharsets.UTF_8));
gzipOutputStream.flush();
gzipOutputStream.finish();
} catch (Exception e) {
System.out.println(e);
return null;
}
return Base64.getEncoder().encodeToString(byteArrayOutputStream.toByteArray());
}
/**
* 文本数据gzip解压
*/
public static String gzipDecompress(String text) {
if (StringUtils.isEmpty(text)) {
return null;
}
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(Base64.getDecoder().decode(text));
try (GZIPInputStream gzipInputStream = new GZIPInputStream(byteArrayInputStream)){
byte[] buffer = new byte[256];
int len;
while ((len = gzipInputStream.read(buffer)) != -1) {
byteArrayOutputStream.write(buffer, 0, len);
}
}catch (Exception e){
System.out.println(e);
return null;
}
return byteArrayOutputStream.toString();
}
}
java 数据Gzip压缩(加密)
最新推荐文章于 2024-10-02 06:02:50 发布
该代码实现了一个名为CompressUtils的类,包含gzip文本压缩和解压缩方法。gzipCompress方法接收一个字符串,使用GZIPOutputStream进行gzip压缩,并通过Base64编码返回。gzipDecompress方法则对Base64解码后的字符串进行gzip解压缩,返回解压后的文本。
摘要由CSDN通过智能技术生成