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

Posted

技术标签:

【中文标题】在 Android APK 2.2 及更高版本中保存和加载 Object[] 信息【英文标题】:Saving and Loading Object[] information in Android APK 2.2 and up 【发布时间】:2011-07-17 23:45:05 【问题描述】:

所以在对该主题进行广泛研究之后,我想出了以下代码:

private void loadInformation() throws IOException, ClassNotFoundException
    FileInputStream fis = openFileInput("save");
    ObjectInputStream in= new ObjectInputStream(fis);
    loadedInformation=(Object[]) in.readObject(); //loadedInformation is a Object[]
    in.close();
    fis.close();



private void saveInformation() throws IOException
    FileOutputStream fos = openFileOutput("save", Context.MODE_PRIVATE);
    ObjectOutputStream out = new ObjectOutputStream(fos);
    out.writeObject(getAllInformation()); //getAllInformation() returns Object[]
    out.close();
    fos.close();


所有这些似乎都可以正常工作,唯一的问题是稍后条件会在它们不应该通过时开始传递,并且在几次保存和加载后它就会崩溃。看起来没问题,但如果(变量等于一!= 变量等于一)结果为真,我一定是在做一些愚蠢的事情。

【问题讨论】:

【参考方案1】:

您的数组真的只包含对象还是它们实际上是用户定义的类型?如果是这样,请考虑这样一个事实,即您必须以仔细的方式设计您的类以使序列化工作。如果您还没有这样做,我强烈建议您阅读Effective Java 的“第 11 章:序列化”。

【讨论】:

那么你的意思是……使用 sqlite?

以上是关于在 Android APK 2.2 及更高版本中保存和加载 Object[] 信息的主要内容,如果未能解决你的问题,请参考以下文章

相机无法在纵向 android 2.2 及更高版本中工作

与 JSF 2.2 及更高版本一起使用的 XML 命名空间

在 Apache Tomcat 7.0.42 及更高版本上部署 Mojarra 2.1.x 和 2.2 会导致 java.lang.UnsupportedOperationException

安卓 2.2 到 1.6?

Android BLE write Characteristic 方法在 Android 5.0 及更高版本中总是返回 false

Android Api(Okhttps)未在android 9(pie)及更高版本中调用[重复]