怎样通过Java实现将字符串压缩为Gzip格式的字节数组
时间: 2023-11-18 21:04:20 浏览: 159
可以使用Java中提供的GZIPOutputStream类和ByteArrayOutputStream类,将字符串压缩为Gzip格式的字节数组。下面是一个示例代码:
```java
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.zip.GZIPOutputStream;
public class GzipCompress {
public static byte[] compress(String inputString) {
try (ByteArrayOutputStream baos = new ByteArrayOutputStream();
GZIPOutputStream gos = new GZIPOutputStream(baos)) {
gos.write(inputString.getBytes());
gos.finish();
return baos.toByteArray();
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
public static void main(String[] args) {
String inputString = "Hello, world!";
byte[] compressedBytes = compress(inputString);
System.out.println("Compressed size: " + compressedBytes.length);
}
}
```
这个示例代码将字符串"Hello, world!"压缩为Gzip格式的字节数组。在compress方法中,首先创建一个ByteArrayOutputStream对象用于接收压缩后的字节数组,然后创建一个GZIPOutputStream对象用于写入压缩后的数据。接着,将原始字符串转换为字节数组并写入到GZIPOutputStream中,调用finish()方法,将压缩输出流中的缓冲区数据写入到ByteArrayOutputStream中,并完成压缩操作。最后,通过toByteArray()方法获取压缩后的字节数组,并返回给调用者。在main方法中,调用compress方法将字符串压缩为字节数组,并打印出其大小。
阅读全文