org.smartboot.http.common.utils.GzipUtils Maven / Gradle / Ivy
/*******************************************************************************
* Copyright (c) 2017-2021, org.smartboot. All rights reserved.
* project name: smart-http
* file name: GzipUtils.java
* Date: 2021-07-12
* Author: sandao ([email protected])
******************************************************************************/
package org.smartboot.http.common.utils;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
/**
* @author 三刀([email protected])
* @version V1.0 , 2021/7/12
*/
public class GzipUtils {
public static final String GZIP_ENCODE_UTF_8 = "UTF-8";
public static final String GZIP_ENCODE_ISO_8859_1 = "ISO-8859-1";
// public static byte[] compress(String str, String encoding) {
// if (str == null || str.length() == 0) {
// return null;
// }
// return compress(str.getBytes(encoding));
// }
public static byte[] compress(byte[] data, int offset, int length) {
return compress(data, offset, length, GZIP_ENCODE_UTF_8);
}
public static byte[] compress(byte[] data, int offset, int length, String encoding) {
ByteArrayOutputStream out = new ByteArrayOutputStream();
GZIPOutputStream gzip;
try {
gzip = new GZIPOutputStream(out);
gzip.write(data, offset, length);
gzip.close();
} catch (Exception e) {
e.printStackTrace();
}
return out.toByteArray();
}
// public static byte[] compress(String str) throws IOException {
// return compress(str, GZIP_ENCODE_UTF_8);
// }
public static byte[] uncompress(byte[] bytes) {
if (bytes == null || bytes.length == 0) {
return null;
}
ByteArrayOutputStream out = new ByteArrayOutputStream();
ByteArrayInputStream in = new ByteArrayInputStream(bytes);
try {
GZIPInputStream ungzip = new GZIPInputStream(in);
byte[] buffer = new byte[256];
int n;
while ((n = ungzip.read(buffer)) >= 0) {
out.write(buffer, 0, n);
}
} catch (Exception e) {
e.printStackTrace();
}
return out.toByteArray();
}
public static String uncompressToString(byte[] bytes, String encoding) {
if (bytes == null || bytes.length == 0) {
return null;
}
ByteArrayOutputStream out = new ByteArrayOutputStream();
ByteArrayInputStream in = new ByteArrayInputStream(bytes);
try {
GZIPInputStream ungzip = new GZIPInputStream(in);
byte[] buffer = new byte[256];
int n;
while ((n = ungzip.read(buffer)) >= 0) {
out.write(buffer, 0, n);
}
return out.toString(encoding);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static String uncompressToString(byte[] bytes) {
return uncompressToString(bytes, GZIP_ENCODE_UTF_8);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy