在java中保存游戏数据

时间:2013-10-23 04:48:02

标签: java save local

我最近开始学习java,我有一个基本的简单游戏,我想保存数据。

我有用于背景的瓷砖。它的55x32。我只需要保存tileID。 我知道有些方法可以将它全部保存到一个字符串中,可能用逗号分隔。然后拆分并从那里重新创建它。但

我有一个相同的网格,15x15,但这个数据需要多个东西,如对象ID,成本,水平,能量等等。它们是不同事物的多重性。有些人可能有精力,有些则有金属。

我怎样才能最好地在本地保存这些数据?

1 个答案:

答案 0 :(得分:1)

序列化是最简单的选择 - 让你的对象(所有!)实现Serializable。然后就是:

File file = /* ask the user for a file name somehow - JFileChooser, whatever */
try ( ObjectOutputStream out = new ObjectOutputStream( new FileOutputStream( file ))) {
   out.writeObject ( myObject );
} catch (IOException ioe) {
    // do something if there is an error, at least this so you
    // know if something went wrong
   ioe.printStackTrace();
}

序列化的唯一问题是,如果您更改类(添加方法,字段,重命名),那么您将无法在新版本的程序中读取旧文件(有办法处理有了它,但它们太复杂了,不能在这里描述)。有各种库可以让您更灵活地序列化为XML或JSON。但Java序列化是一个很好的起点。