Javaで簡単な画像編集プログラムを作成しようとしています。ImageCanvas編集中の画像に関するすべての情報 (いくつかの基本的なプロパティ、適用される効果のリスト、レイヤーのリストなど) を持つオブジェクトを作成し、BufferedImageそれをディスクに保存する簡単な方法が必要でした。後で再び開いた。
Java のデフォルトSerializableインターフェイスを使用することはまさに私が探していたものであり、オブジェクト全体をファイルに書き込んで、後で再びメモリに読み込むことができると考えました。ただし、 をImageCanvas含み、ArrayList<BufferedImage>はBufferedImageシリアライズできません (それ以外はすべてシリアライズ可能です)。
writeObject()とメソッドをオーバーライドできることは知っていますが、そうしたことはありません。 Java で他のすべてをシリアル化し、をディスクreadObject()に読み書きする独自の方法があるかどうか疑問に思っていました。または、私が見落としているオブジェクトBufferedImage全体をディスクに簡単に書き込む他の方法はありますか? ImageCanvas最終的には、独自のカスタム イメージ ファイル タイプを実装する可能性がありますが、現時点では、テスト中にファイルを一時的に保存するための迅速かつ簡単な方法が必要でした (ImageCanvasクラスは大きく変更されるため、自分のファイルを更新し続ける必要はありませんでした)。ファイナライズする前のカスタム ファイル タイプ)。