使用BufferedImages序列化对象的ArrayList

时间:2014-11-24 22:08:39

标签: java serialization bufferedimage

我试图通过序列化包含敌人ArrayList的游戏对象来保存游戏状态。 ArrayList上的每个项都是一个对象,每个对象都包含一个BufferedImage来表示敌人。 Java抛出了BufferedImages无法序列化的错误。我发现的所有解决方案都只是创建一个新对象,并用除了图像之外的所有数据填充它,但我不确定List设置的可能性。

public void saveGame(){
    GamePanel game = new GamePanel();
    game.enemyList = enemyList;
    game.player = new Player(this.getWidth(), this.getHeight());
    game.player.setScore(player.getScore());
    game.player.setPos(player.getX(), player.getY());

    try{
        FileOutputStream fileOut = new FileOutputStream("savegame.txt");
        ObjectOutputStream out = new ObjectOutputStream(fileOut);
        out.writeObject(game);
        out.close();
        fileOut.close();
    }catch(IOException ex){
        ex.printStackTrace();
    }
}

谢谢!

1 个答案:

答案 0 :(得分:0)

评论中已经回答了这个问题,因此我将在此处重新发布以解决问题。

  

将您不想序列化的属性标记为瞬态。例如,私有瞬态BufferedImage alienImage;。 - SJuan76