将Serializable对象存储到文件中,但不包括某些数据

时间:2011-02-18 12:33:39

标签: java serialization file-io bufferedimage

我有一个对象,允许我将BufferedImage存储到我的目标文件中。在同一个对象中,我有BufferedImage变量,用于在第一次从原始数据数组加载后缓存图像。当我创建对象并将其存储到文件时,一切正常,因为BufferedImage为null。当我正在更新加载的对象并且正在初始化变量并且我想在更新后保存对象时,问题出现了。

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

提前致谢, 谢尔盖。

2 个答案:

答案 0 :(得分:15)

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

private transient BufferedImage image;

答案 1 :(得分:4)

变量可以标记为transient。如果变量被标记为瞬态变量,则在序列化对象时不会将其序列化。

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