Create GZIP compression util class

This commit is contained in:
Brady 2018-08-03 22:48:21 -07:00
parent 9dc1f2abab
commit d6b3d57560
No known key found for this signature in database
GPG Key ID: 73A788379A197567

View File

@ -0,0 +1,90 @@
package baritone.bot.utils;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
/**
* @author Brady
* @since 8/3/2018 10:18 PM
*/
public final class GZIPUtils {
private GZIPUtils() {}
public static byte[] compress(byte[] in) {
ByteArrayOutputStream byteStream = null;
GZIPOutputStream gzipStream = null;
try {
byteStream = new ByteArrayOutputStream(in.length);
gzipStream = new GZIPOutputStream(byteStream);
gzipStream.write(in);
} catch (IOException e) {
e.printStackTrace();
} finally {
// Clean up the byte array stream
if (byteStream != null) {
try {
byteStream.close();
} catch (IOException ignored) {}
}
// Clean up the GZIP compression stream
if (gzipStream != null) {
try {
gzipStream.close();
} catch (IOException ignored) {}
}
}
return byteStream != null ? byteStream.toByteArray(): null;
}
public static byte[] decompress(byte[] in) {
ByteArrayInputStream byteStream = null;
GZIPInputStream gzipStream = null;
ByteArrayOutputStream outStream = null;
try {
byteStream = new ByteArrayInputStream(in);
gzipStream = new GZIPInputStream(byteStream);
outStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = gzipStream.read(buffer)) > 0) {
outStream.write(buffer, 0, len);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
// Clean up the byte array stream
if (byteStream != null) {
try {
byteStream.close();
} catch (IOException ignored) {}
}
// Clean up the GZIP compression stream
if (gzipStream != null) {
try {
gzipStream.close();
} catch (IOException ignored) {}
}
// Clean up the byte output stream
if (outStream != null) {
try {
outStream.close();
} catch (IOException ignored) {}
}
}
return outStream != null ? outStream.toByteArray() : null;
}
}