我可能会尝试以困难的方式执行此操作,所以请让我知道是否有更好的解决方案。
我正在用Java开发一个简单的文字游戏,您可以通过GUI选择动作。我有几个班级正在尝试序列化一个是播放器,另一个是NPC。是否有一种简单的方法可以将一个以上的对象(播放器和NPC)序列化到同一文件中?我可以序列化一个对象并将其加载回游戏中。
我会以错误的方式处理吗?有没有更简单的方法来尝试保存游戏状态?
如果我有一个创建多个对象的类并序列化该类,那么它创建的对象也将被序列化吗?
谢谢
顺序写入对象的另一种方法是将它们存储在集合(例如HashMap)中,因为可以序列化集合。这可能会使检索时的管理起来更容易一些,尤其是当您有许多要序列化/反序列化的对象时。以下代码演示了这一点:
String first = "first"; String second = "second"; HashMap<String, Object> saved = new HashMap<String, Object>(); saved.put("A", first); saved.put("B", second); try { FileOutputStream fos = new FileOutputStream("test.obj"); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(saved); oos.flush(); oos.close(); fos.close(); FileInputStream fis = new FileInputStream("test.obj"); ObjectInputStream ois = new ObjectInputStream(fis); HashMap<String,Object> retreived = (HashMap<String,Object>)ois.readObject(); fis.close(); System.out.println(retreived.get("A")); System.out.println(retreived.get("B")); } catch (IOException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } }
运行此命令将导致:
first second