提交项目
This commit is contained in:
115
app/src/main/java/com/gh/common/util/GzipUtils.java
Normal file
115
app/src/main/java/com/gh/common/util/GzipUtils.java
Normal file
@ -0,0 +1,115 @@
|
||||
package com.gh.common.util;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.util.zip.GZIPInputStream;
|
||||
import java.util.zip.GZIPOutputStream;
|
||||
|
||||
public class GzipUtils {
|
||||
|
||||
private final static int BUFFER = 1024;
|
||||
|
||||
/*
|
||||
* 数据压缩
|
||||
*/
|
||||
public static void compress(InputStream is, OutputStream os)
|
||||
throws IOException {
|
||||
GZIPOutputStream gos = null;
|
||||
try {
|
||||
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.flush();
|
||||
gos.finish();
|
||||
gos.close();
|
||||
} finally {
|
||||
if (gos != null) {
|
||||
gos.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 数据解压缩
|
||||
*/
|
||||
public static void decompress(InputStream is, OutputStream os)
|
||||
throws IOException {
|
||||
GZIPInputStream gis = null;
|
||||
try {
|
||||
gis = new GZIPInputStream(is);
|
||||
int count;
|
||||
byte data[] = new byte[BUFFER];
|
||||
while ((count = gis.read(data, 0, BUFFER)) != -1) {
|
||||
os.write(data, 0, count);
|
||||
}
|
||||
} finally {
|
||||
if (gis != null) {
|
||||
gis.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static byte[] compressBytes(byte[] compressed) {
|
||||
ByteArrayInputStream bais = null;
|
||||
ByteArrayOutputStream baos = null;
|
||||
try {
|
||||
bais = new ByteArrayInputStream(compressed);
|
||||
baos = new ByteArrayOutputStream();
|
||||
compress(bais, baos);
|
||||
return baos.toByteArray();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
return compressed;
|
||||
} finally {
|
||||
if (bais != null) {
|
||||
try {
|
||||
bais.close();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
if (baos != null) {
|
||||
try {
|
||||
baos.close();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static byte[] decompressBytes(byte[] compressed) {
|
||||
ByteArrayInputStream bais = null;
|
||||
ByteArrayOutputStream baos = null;
|
||||
try {
|
||||
bais = new ByteArrayInputStream(compressed);
|
||||
baos = new ByteArrayOutputStream();
|
||||
decompress(bais, baos);
|
||||
return baos.toByteArray();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
return compressed;
|
||||
} finally {
|
||||
if (bais != null) {
|
||||
try {
|
||||
bais.close();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
if (baos != null) {
|
||||
try {
|
||||
baos.close();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user