在进行gzip压缩时,如果需要将字符串压缩,可以直接将字符串转为输入流(InputStream)然后进行压缩,避免先将字符串转为字节数组再进行压缩的操作。
示例代码:
String str = "hello world";
ByteArrayOutputStream outputStream = new ByteArrayOutputStream(str.length());
GZIPOutputStream gzipOutputStream = new GZIPOutputStream(outputStream);
// 直接将字符串转为InputStream,然后进行压缩
InputStream input = new ByteArrayInputStream(str.getBytes("UTF-8"));
byte[] buffer = new byte[1024];
int len;
while ((len = input.read(buffer)) != -1) {
gzipOutputStream.write(buffer, 0, len);
}
gzipOutputStream.close();
byte[] compressedData = outputStream.toByteArray();