在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

回到顶部