package hunternif.mc.atlas.util; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.zip.DataFormatException; import java.util.zip.Deflater; import java.util.zip.Inflater; class ZipUtil { public static byte[] decompressByteArray(byte[] bytes) { ByteArrayOutputStream baos = null; Inflater iflr = new Inflater(); iflr.setInput(bytes); baos = new ByteArrayOutputStream(); byte[] tmp = new byte[4 * 1024]; try { while (!iflr.finished()) { int size = iflr.inflate(tmp); baos.write(tmp, 0, size); } } catch (DataFormatException e) { Log.error(e, "Error unzipping bytes"); } finally { try { if (baos != null) baos.close(); } catch (IOException e) { Log.error(e, "Error unzipping bytes"); } } return baos.toByteArray(); } public static byte[] compressByteArray(byte[] bytes) { ByteArrayOutputStream baos = null; Deflater dfl = new Deflater(); dfl.setLevel(Deflater.BEST_COMPRESSION); dfl.setInput(bytes); dfl.finish(); baos = new ByteArrayOutputStream(); byte[] tmp = new byte[4 * 1024]; try { while (!dfl.finished()) { int size = dfl.deflate(tmp); baos.write(tmp, 0, size); } } finally { try { if (baos != null) baos.close(); } catch (IOException e) { Log.error(e, "Error zipping bytes"); } } return baos.toByteArray(); } }