在Java中为对象实现内存中压缩
我们有一个用例,我们想压缩和存储对象(内存中),并在需要时解压缩它们。
我们想要压缩的数据变化很大,从浮点向量到字符串再到日期。
有人可以建议使用任何好的压缩技术吗?
我们将压缩的难易程度和减压速度视为最重要的因素。
谢谢。
回答:
如果要压缩实例,MyObject
可以实现它Serializable
,然后将对象流式传输到压缩的字节数组中,如下所示:
ByteArrayOutputStream baos = new ByteArrayOutputStream();GZIPOutputStream gzipOut = new GZIPOutputStream(baos);
ObjectOutputStream objectOut = new ObjectOutputStream(gzipOut);
objectOut.writeObject(myObj1);
objectOut.writeObject(myObj2);
objectOut.close();
byte[] bytes = baos.toByteArray();
然后解压缩byte[]
到对象中:
ByteArrayInputStream bais = new ByteArrayInputStream(bytes);GZIPInputStream gzipIn = new GZIPInputStream(bais);
ObjectInputStream objectIn = new ObjectInputStream(gzipIn);
MyObject myObj1 = (MyObject) objectIn.readObject();
MyObject myObj2 = (MyObject) objectIn.readObject();
objectIn.close();
以上是 在Java中为对象实现内存中压缩 的全部内容, 来源链接: utcz.com/qa/412585.html