我正在尝试在 java 中创建一个简单的图像编辑程序。我创建了一个ImageCanvas
对象,其中包含有关正在编辑的图像的所有信息(一些基本属性、正在应用的效果列表、BufferedImage
图层列表等),我想要一种简单的方法将其保存到磁盘上,以便它可以后来又开了。
我认为使用 Java 的默认Serializable
接口可能正是我想要的,我可以将整个对象写入文件并稍后再次将其读回内存。但是,ImageCanvas
包括ArrayList<BufferedImage>
, 和BufferedImage
's 是不可序列化的(其他都是可序列化的)。
我知道可以覆盖writeObject()
andreadObject()
方法,但我从来没有这样做过,我想知道是否有任何简单的方法可以让 Java 序列化其他所有内容并有一些自定义方式来读取/写入BufferedImage
磁盘?还是有其他方法可以轻松地将整个ImageCanvas
对象写入我忽略的磁盘?最终我可能会实现我自己的自定义图像文件类型,但现在我想要一种快速简便的方法来在我测试时临时保存文件(ImageCanvas
类会发生很大变化,所以我不想继续更新我的在我完成之前自定义文件类型)。