gpt4 book ai didi

java - 在 Java 中实现对象的内存压缩

转载 作者:IT老高 更新时间:2023-10-28 21:02:16 29 4
gpt4 key购买 nike

我们有这个用例,我们希望压缩和存储对象(在内存中)并在需要时解压缩它们。

我们要压缩的数据多种多样,从浮点 vector 到字符串再到日期。

有人可以建议任何好的压缩技术吗?

我们将压缩的难易程度和解压缩的速度视为最重要的因素。

谢谢。

最佳答案

如果你想压缩 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 - 在 Java 中实现对象的内存压缩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5934495/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com