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

我有以下类,我希望将其序列化并存储在 .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 级别?


HUH函数
浏览 210回答 1
1回答

喵喵时光机

考虑提供您自己的 readObject 和 writeObject 方法,以在序列化期间压缩内容变量的内容。请参阅 ZipInputStream/ZipOutputStream。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java