保存一个 Object[][] 并加载它

Posted

技术标签:

【中文标题】保存一个 Object[][] 并加载它【英文标题】:Save an Object[][] and load it 【发布时间】:2016-07-09 18:56:48 【问题描述】:

我目前有一个 Object[][] 包含一个 2D 数组,这个数组将使用临时数组和不增加大小的东西进行操作(这是我到目前为止所知道的)。

我想要在程序退出时保存新的Object[][] 实例,然后在它启动时我希望加载新的Object[][]。我正在考虑将其设为文件,然后使用标记器在开始时填充Object[][]。我的方向正确吗?

【问题讨论】:

如果你的程序退出,对象显然丢失了。您需要将其信息保存在某处,例如:作为 json 文件,看看 Google 的 gson,很简单 sites.google.com/site/gson/gson-user-guide 看看ObjectInputStreamObjectOutputStream。 This tutorial 也可能有帮助。 【参考方案1】:

这就是我能够弄清楚如何保存和加载 Object[][] 的方法。

要保存文件,我首先必须有一个包含至少一个 Object 数组的 Object[][] 变量。然后我保存/创建了文件,如下所示:

public void saveFile(Object[] variable)
        ObjectOutputStream oos = new ObjectOutputStream(new 
                FileOutputStream(filename));
        oos.writeObject(variable);
        oos.close();


然后像这样加载它:

 public void loadFile()
    ObjectInputStream ois = new ObjectInputStream(new
            FileInputStream(filename));
    players = (Object[][]) ois.readObject();
    ois.close();
 

我知道我只是用新文件覆盖文件,但这是我能想到的最佳解决方案。谢谢@MasterBlaster 的帮助,还有@MadMatts 我只是不知道如何使用gson,也许我会再找一次,但还是谢谢你!

【讨论】:

以上是关于保存一个 Object[][] 并加载它的主要内容,如果未能解决你的问题,请参考以下文章

将图像加载到画布上并放大/缩小并移动它以适应并保存画布上的内容

将任何文件加载到位并保存

在 Android APK 2.2 及更高版本中保存和加载 Object[] 信息

是否有人在加载 Keras 保存的模型时得到“AttributeError: 'str' object has no attribute 'decode'”

iPhone手动保存/加载数据,没有它自动加载

检测当前前台活动并重新加载它