Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:可以优化多大的字符串以在序列化对象中占用更少的内存?_Java_String_Serialization - Fatal编程技术网

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

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

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

如果我想在那里存储多个文本快照,那就不好了


您有什么建议,可以将多大的字符串压缩/优化为更小的类型?或者该解决方案可能是流/编写器级别的?

请考虑提供自己的readObject和writeObject方法,用于在序列化过程中压缩内容变量的内容。请参阅ZipInputStream/zipoutpstream。

考虑提供自己的readObject和writeObject方法,在序列化过程中压缩内容变量的内容。请参见ZipInputStream/ZipOutStream