java Object Compression
import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; import java.util.Objects; import java.util.zip.GZIPInputStream; import java.util.zip.GZIPOutputStream; public class ObjectCompressUtils { public byte[] compressObject(CollectResult o) throws IOException { ObjectOutputStream objectOut = null; ByteArrayOutputStream baos = null; GZIPOutputStream gzipOut = null; try { baos = new ByteArrayOutputStream(); gzipOut = new GZIPOutputStream(baos); objectOut = new ObjectOutputStream(gzipOut); objectOut.writeObject(o); } finally { if (Objects.nonNull(objectOut)) { objectOut.close(); } if (Objects.nonNull(baos)) { baos.close(); } if (Objects.nonNull(gzipOut)) { gzipOut.close(); } } return baos.toByteArray(); } public T decompressObject(byte[] data) throws IOException, ClassNotFoundException { ByteArrayInputStream bais = null; GZIPInputStream gzipIn = null; ObjectInputStream objectIn = null; try { bais = new ByteArrayInputStream(data); gzipIn = new GZIPInputStream(bais); objectIn = new ObjectInputStream(gzipIn); return (T) objectIn.readObject(); } finally { if (Objects.nonNull(bais)) { bais.close(); } if (Objects.nonNull(gzipIn)) { gzipIn.close(); } if (Objects.nonNull(objectIn)) { objectIn.close(); } } } } Class binary를 압축하는 방법에 대해서 고민 하던 도중 위와 같은 방법이 있는걸 확인.
하지만 몇가지 -_-; 위치에 따라서 발생되는 문제들은 있음.
https://examples.javacodegeeks.com/core-java/util/zip/compress-objects-example/
With this example we are going to demonstrate how to compress and expand an Object. We have implemen…
This article is licensed under CC BY 4.0 by the author.