用java保存游戏数据

用java保存游戏数据,java,save,local,Java,Save,Local,我最近开始学习java,我有一个基本的简单游戏,我想保存数据 我用瓷砖做背景。它是55x32。我只需要保存tileID。 我知道一些方法,我可以把它保存成一个字符串,可能用逗号分隔。然后将其拆分并从那里重新创建。但是 我有一个网格,它是相同的东西,15x15,但是这个数据需要多个东西,比如对象ID、成本、级别、能量等等。它们是不同事物的倍数。有些可能有能量,而另一些可能有金属 如何最好地在本地保存此数据?序列化是最简单的选择-让您的对象(所有对象!)实现可序列化。那么就: File file =

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

我用瓷砖做背景。它是55x32。我只需要保存tileID。 我知道一些方法,我可以把它保存成一个字符串,可能用逗号分隔。然后将其拆分并从那里重新创建。但是

我有一个网格,它是相同的东西,15x15,但是这个数据需要多个东西,比如对象ID、成本、级别、能量等等。它们是不同事物的倍数。有些可能有能量,而另一些可能有金属


如何最好地在本地保存此数据?

序列化是最简单的选择-让您的对象(所有对象!)实现可序列化。那么就:

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序列化是一个很好的起点。

可以序列化/反序列化类对象。您可以将数据存储在文件中并将其读回。还有很多其他的方法。到目前为止你试过什么?!我对java还是新手,我在任何地方都读过这个序列化,但我对它的理解还不够。我还没有尝试过任何东西,因为我不确定如何保存具有不同属性的对象的所有数据。实际上很简单。csv呢?理解起来很简单,