import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.Base64;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
/**
* @description: 压缩字符串工具类
* @version: 1.0
* @modified By:
*/
public class ZipStringUtil {
/**
* 功能描述: 压缩字符串
*
* @param originalStr 源字符串
* @return java.lang.String
*/
public static String compressString(String originalStr) {
ByteArrayOutputStream byteArrayOutputStream = null;
GZIPOutputStream gzipOutputStream = null;
try {
byteArrayOutputStream = new ByteArrayOutputStream();
gzipOutputStream = new GZIPOutputStream(byteArrayOutputStream);
gzipOutputStream.write(originalStr.getBytes());
gzipOutputStream.close();
byteArrayOutputStream.close();
return Base64.getEncoder().encodeToString(byteArrayOutputStream.toByteArray());
} catch (IOException e) {
e.printStackTrace();
} finally {
if (null != gzipOutputStream) {
try {
gzipOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (null != byteArrayOutputStream) {
try {
byteArrayOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return null;
}
/**
* 功能描述: 解压缩字符串
*
* @param compressStr 压缩后的字符串
* @return java.lang.String
*/
public static String decompressString(String compressStr) {
byte[] compressBytes = Base64.getDecoder().decode(compressStr);
ByteArrayInputStream byteArrayInputStream = null;
GZIPInputStream gzipInputStream = null;
try {
byteArrayInputStream = new ByteArrayInputStream(compressBytes);
gzipInputStream = new GZIPInputStream(byteArrayInputStream);
StringBuilder stringBuilder = new StringBuilder();
byte[] buffer = new byte[1024];
int byteRead;
while ((byteRead = gzipInputStream.read(buffer)) != -1) {
stringBuilder.append(new String(buffer, 0, byteRead));
}
return stringBuilder.toString();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (null != gzipInputStream) {
try {
gzipInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (null != byteArrayInputStream) {
try {
byteArrayInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return null;
}
}
字符串压缩工具类
最新推荐文章于 2024-05-20 10:24:40 发布