try with resources

This commit is contained in:
Leijurv 2018-08-04 13:34:50 -04:00
parent d6b3d57560
commit e2030eeba9
No known key found for this signature in database
GPG Key ID: 44A3EA646EADAC6A

View File

@ -12,79 +12,28 @@ import java.util.zip.GZIPOutputStream;
*/ */
public final class GZIPUtils { public final class GZIPUtils {
private GZIPUtils() {} private GZIPUtils() {
}
public static byte[] compress(byte[] in) { public static byte[] compress(byte[] in) throws IOException {
ByteArrayOutputStream byteStream = null; ByteArrayOutputStream byteStream = new ByteArrayOutputStream(in.length);
GZIPOutputStream gzipStream = null;
try { try (GZIPOutputStream gzipStream = new GZIPOutputStream(byteStream)) {
byteStream = new ByteArrayOutputStream(in.length);
gzipStream = new GZIPOutputStream(byteStream);
gzipStream.write(in); gzipStream.write(in);
} catch (IOException e) { }
e.printStackTrace(); return byteStream.toByteArray();
} finally {
// Clean up the byte array stream
if (byteStream != null) {
try {
byteStream.close();
} catch (IOException ignored) {}
} }
// Clean up the GZIP compression stream public static byte[] decompress(byte[] in) throws IOException {
if (gzipStream != null) { ByteArrayOutputStream outStream = new ByteArrayOutputStream();
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();
try (GZIPInputStream gzipStream = new GZIPInputStream(new ByteArrayInputStream(in))) {
byte[] buffer = new byte[1024]; byte[] buffer = new byte[1024];
int len; int len;
while ((len = gzipStream.read(buffer)) > 0) { while ((len = gzipStream.read(buffer)) > 0) {
outStream.write(buffer, 0, len); 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) {}
} }
return outStream.toByteArray();
// 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;
} }
} }