You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.8 KiB
62 lines
1.8 KiB
3 years ago
|
package com.fr.plugin.oauth.utils;
|
||
|
|
||
|
import java.io.ByteArrayInputStream;
|
||
|
import java.io.ByteArrayOutputStream;
|
||
|
import java.io.InputStream;
|
||
|
import java.io.OutputStream;
|
||
|
import java.util.zip.GZIPInputStream;
|
||
|
import java.util.zip.GZIPOutputStream;
|
||
|
|
||
|
public class GZipUtil {
|
||
|
public static final int BUFFER = 1024;
|
||
|
|
||
|
/**
|
||
|
* 数据压缩
|
||
|
*/
|
||
|
public static void compress(InputStream is, OutputStream os) throws Exception {
|
||
|
GZIPOutputStream gos = new GZIPOutputStream(os);
|
||
|
int count;
|
||
|
byte data[] = new byte[BUFFER];
|
||
|
while ((count = is.read(data, 0, BUFFER)) != -1) {
|
||
|
gos.write(data, 0, count);
|
||
|
}
|
||
|
gos.finish();
|
||
|
gos.flush();
|
||
|
gos.close();
|
||
|
}
|
||
|
|
||
|
public static byte[] compress(byte[] data) throws Exception {
|
||
|
ByteArrayInputStream bais = new ByteArrayInputStream(data);
|
||
|
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||
|
compress(bais, baos);
|
||
|
byte[] output = baos.toByteArray();
|
||
|
baos.flush();
|
||
|
baos.close();
|
||
|
bais.close();
|
||
|
return output;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 数据解压
|
||
|
*/
|
||
|
public static void decompress(InputStream is, OutputStream os) throws Exception {
|
||
|
GZIPInputStream gis = new GZIPInputStream(is);
|
||
|
int count;
|
||
|
byte data[] = new byte[BUFFER];
|
||
|
while ((count = gis.read(data, 0, BUFFER)) != -1) {
|
||
|
os.write(data, 0, count);
|
||
|
}
|
||
|
gis.close();
|
||
|
}
|
||
|
|
||
|
public static byte[] decompress(byte[] data) throws Exception {
|
||
|
ByteArrayInputStream bais = new ByteArrayInputStream(data);
|
||
|
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||
|
decompress(bais, baos);
|
||
|
byte[] output = baos.toByteArray();
|
||
|
baos.flush();
|
||
|
baos.close();
|
||
|
bais.close();
|
||
|
return output;
|
||
|
}
|
||
|
}
|