将可序列化对象存储到文件中,但不包括某些数据

将可序列化对象存储到文件中,但不包括某些数据

问题描述:

我有一个对象,它允许将BufferedImage存储到我的对象文件中。在同一个对象中,我使用BufferedImage变量来缓存从原始数据数组第一次加载后的图像。当我创建对象并将其存储到文件时,一切正常,因为BufferedImage为空。当我更新加载对象并且变量正在被初始化时,问题就出现了,我想在对象更新后保存对象。将可序列化对象存储到文件中,但不包括某些数据

有没有可能将可序列化的对象存储到文件中,排除某些变量?或者,也许我可以在存储到文件时以某种方式重置我的BufferedImage变量?

在此先感谢, Serhiy。

你应该标记你不希望序列化为瞬态属性:

private transient BufferedImage image; 

变量可以被标记为transient。如果一个变量被标记为transient,那么当你的对象被序列化时它不会被序列化。

此外,当您从存储状态检索对象时,transient变量将具有空值。所以你需要确保你在使用之前重新初始化瞬态变量。