在某些业务场景下,可能需要对字符串进行压缩与解压,压缩字符串可以使用 GZIPOutputStream 输出流来实现,而解压可以使用 GZIPInputStream 输入流来实现,下面先给出具体的参考代码,然后再分析其中的实现原理。
::: hljs-center
:::
1、代码实现
package com.magic.zip; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.nio.charset.StandardCharsets; import java.util.zip.GZIPInputStream; import java.util.zip.GZIPOutputStream; public class GzipUtils { /** * 压缩字符串 * * @param str 需要压缩的源字符串 * @return 压缩后的字符串 */ public static String compress(String str) { if (null == str || str.length() <= 0) { return str; } try (ByteArrayOutputStream out = new ByteArrayOutputStream(); GZIPOutputStream gzip = new GZIPOutputStream(out)) { // 将字符串以字节的形式写入到 GZIP 压缩输出流中 gzip.write(str.getBytes(Stand