服务热线
135-6963-3175
下面是使用Java实现对字符串进行GZIP压缩的示例代码:
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
import java.nio.charset.StandardCharsets;
public class GzipCompressionExample {
public static byte[] compress(String input) throws IOException {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
try (GZIPOutputStream gzipOutputStream = new GZIPOutputStream(outputStream)) {
gzipOutputStream.write(input.getBytes(StandardCharsets.UTF_8));
}
return outputStream.toByteArray();
}
public static String decompress(byte[] compressedData) throws IOException {
ByteArrayInputStream inputStream = new ByteArrayInputStream(compressedData);
try (GZIPInputStream gzipInputStream = new GZIPInputStream(inputStream)) {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = gzipInputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
return outputStream.toString(StandardCharsets.UTF_8);
}
}
public static void main(String[] args) {
String input = "Hello, world!";
try {
byte[] compressedData = compress(input);
String decompressedOutput = decompress(compressedData);
System.out.println("Original: " + input);
System.out.println("Compressed: " + new String(compressedData, StandardCharsets.UTF_8));
System.out.println("Decompressed: " + decompressedOutput);
} catch (IOException e) {
e.printStackTrace();
}
}
}在上述示例中,compress() 方法接受一个字符串作为输入,并返回压缩后的字节数组。decompress() 方法接受一个压缩后的字节数组,并返回解压缩后的字符串。
在 main() 方法中,我们使用示例字符串 "Hello, world!" 进行压缩和解压缩操作,并打印原始字符串、压缩后的字节数组和解压缩后的字符串。
请注意,GZIP压缩是一种无损压缩算法,可以有效地压缩数据,但会增加一些额外的计算开销。在实际使用时,请根据你的需求和数据量进行评估。