为了账号安全,请及时绑定邮箱和手机立即绑定

Java:可以优化多大的字符串以在序列化对象中占用更少的内存?

Java:可以优化多大的字符串以在序列化对象中占用更少的内存?

HUH函数 2021-10-27 13:47:33
我有以下类,我希望将其序列化并存储在 .ser 文件中:public class Memento implements Serializable {    private String file_name;    private String content;    private Date date_of_change;    public Memento(String file_name, String content) {        this.file_name=file_name;        this.content=content;        date_of_change = Calendar.getInstance().getTime();    }    public String getFile_name() {        return file_name;    }    public String getContent() {        return content;    }    public Date getDate_of_change() {        return date_of_change;    }}问题是“内容”变量必须包含非常大的字符串。当程序序列化并写入对象时,结果文件的大小大于原始文件的大小(“内容”的文本来自该文件)。例如,原始文件大小为 2.035 字节;.ser 文件在一张快照后的大小为 2.247 字节。如果我想在那里存储多个文本快照,那就不好了。您有什么建议,可以将多大的 String 压缩/优化为较小的类型?或者也许解决方案是在 Stream/Writer 级别?
查看完整描述

1 回答

?
喵喵时光机

TA贡献1846条经验 获得超7个赞

考虑提供您自己的 readObject 和 writeObject 方法,以在序列化期间压缩内容变量的内容。请参阅 ZipInputStream/ZipOutputStream。


查看完整回答
反对 回复 2021-10-27
  • 1 回答
  • 0 关注
  • 209 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信