java 压缩byte[]
时间: 2023-09-09 09:08:08 浏览: 34
Java 中可以使用 GZIP 压缩算法对 byte[] 进行压缩,可以使用以下代码实现:
```java
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
public class GzipUtils {
public static byte[] compress(byte[] data) throws IOException {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
GZIPOutputStream gzipOutputStream = new GZIPOutputStream(byteArrayOutputStream);
gzipOutputStream.write(data);
gzipOutputStream.close();
return byteArrayOutputStream.toByteArray();
}
public static byte[] decompress(byte[] data) throws IOException {
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(data);
GZIPInputStream gzipInputStream = new GZIPInputStream(byteArrayInputStream);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = gzipInputStream.read(buffer)) != -1) {
byteArrayOutputStream.write(buffer, 0, len);
}
gzipInputStream.close();
byteArrayOutputStream.close();
return byteArrayOutputStream.toByteArray();
}
}
```
使用示例:
```java
byte[] originalData = "Hello, World!".getBytes();
byte[] compressedData = GzipUtils.compress(originalData);
System.out.println("Compressed size: " + compressedData.length);
byte[] decompressedData = GzipUtils.decompress(compressedData);
System.out.println("Decompressed data: " + new String(decompressedData));
```