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