我有以下类,我希望将其序列化并存储在 .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。
添加回答
举报
0/150
提交
取消