我最近开始学习java,我有一个基本的简单游戏,我想保存数据。
我有用于背景的瓷砖。它的55x32。我只需要保存tileID。 我知道有些方法可以将它全部保存到一个字符串中,可能用逗号分隔。然后拆分并从那里重新创建它。但
我有一个相同的网格,15x15,但这个数据需要多个东西,如对象ID,成本,水平,能量等等。它们是不同事物的多重性。有些人可能有精力,有些则有金属。
我怎样才能最好地在本地保存这些数据?
答案 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序列化是一个很好的起点。