我有以下课程,希望将其序列化并存储在.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;
}
}
问题是“ content”变量必须包含非常大的字符串。当程序序列化并写入对象时,结果文件的大小大于原始文件的大小(从中获取“内容”的文本)。例如,原始文件大小为2.035字节;一张快照后的.ser文件大小为2.247字节。
如果我想在此处存储多个文本快照,那就不好了。
您有什么建议,可以将多大的String压缩/优化为较小的类型?还是解决方案是在Stream / Writer级别上?
答案 0 :(得分:2)
请考虑提供您自己的readObject和writeObject方法,以在序列化期间压缩content变量的内容。请参阅ZipInputStream / ZipOutputStream。