Java:可以优化多大的字符串以在序列化对象中占用更少的内存?
我有以下类,我希望将其序列化并存储在.ser文件中:Java:可以优化多大的字符串以在序列化对象中占用更少的内存?,java,string,serialization,Java,String,Serialization,我有以下类,我希望将其序列化并存储在.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_n
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;
}
}
问题是“content”变量必须包含非常大的字符串。当程序序列化并写入对象时,结果文件的大小大于原始文件的大小(从原始文件中获取“内容”文本)。例如,原始文件大小为2.035字节。一个快照后的ser文件大小为2.247字节
如果我想在那里存储多个文本快照,那就不好了
您有什么建议,可以将多大的字符串压缩/优化为更小的类型?或者该解决方案可能是流/编写器级别的?请考虑提供自己的readObject和writeObject方法,用于在序列化过程中压缩内容变量的内容。请参阅ZipInputStream/zipoutpstream。考虑提供自己的readObject和writeObject方法,在序列化过程中压缩内容变量的内容。请参见ZipInputStream/ZipOutStream