Я пытаюсь создать простую программу для редактирования изображений в java. Я создал объект ImageCanvas
, который имеет всю информацию об редактируемом изображении (некоторые базовые свойства, список применяемых эффектов, список слоев BufferedImage
и т.д.), И я хотел бы простой способ его сохранения на диск, чтобы его можно было открыть позже.
Я понял, что использование интерфейса Java defualt Serializable
может быть именно тем, что я искал, и я мог бы просто написать весь объект в файл и снова прочитать его обратно в память позже. Однако ImageCanvas
включает ArrayList<BufferedImage>
, а BufferedImage
не является сериализуемым (все остальное).
Я знаю, что можно переопределить методы writeObject()
и readObject()
, но я никогда не делал этого, и мне было интересно, есть ли простой способ заставить Java сериализовать все остальное и иметь собственный способ чтения/пишите BufferedImage
на диск? Или есть другой способ легко написать весь объект ImageCanvas
на диск, который я пропускаю? В конце концов я мог бы реализовать свой собственный тип файла изображения, но сейчас я хотел бы быстро и просто временно сохранить файлы во время тестирования (класс ImageCanvas
сильно изменится, поэтому я не хотел, чтобы продолжайте обновлять свой собственный тип файла, прежде чем я его окончательно доработаю).