【问题标题】:xml or serializexml 或序列化
【发布时间】:2013-04-12 15:58:43
【问题描述】:

我有一个有限的对象列表,我使用 ObjectInputStream 和 ObjectOutputStream 将这些对象序列化到存储中。 我遇到了不使用序列化的建议。 我应该使用使用 XmlSerializer 和 XmlPullParser 的 xml 方法而不是序列化列表?我将不得不用这种方法做额外的解析 xml 的步骤。

哪种方法是正确的?

【问题讨论】:

  • 这完全取决于您对这些文件的使用。您是否需要导出、共享或手动编辑这些序列化文件?

标签: android xml serialization


【解决方案1】:

TL;DR:如果用户不需要与之交互,序列化您的对象没有问题。

如果您输出的文件需要共享、导出或手动编辑,那么最好导出为 XML。这样做的用例可能是导出游戏角色对象,并允许用户在 XML 文件中编辑他们的一些统计数据,或与也可以编辑它的其他用户共享他们的角色。

如果您输出的文件仅在您的应用程序中使用,用户从未直接与之交互,或者甚至从未被用户看到,那么您没有理由不能只序列化您的对象,如果那是您的更喜欢。与第一个类似的用例可能是保存您不希望用户弄乱的游戏角色。序列化对象会使用户无法读取文件,并会阻止他们更改统计信息以更轻松地击败您的游戏。

这些用例可能与您的应用无关,但它们确实概述了每种方法的一些优缺点。

【讨论】:

  • 我只担心因为许多 stackoverflow 帖子说序列化性能不佳。首选项不是一个合适的数据存储选项,而且我的数据太小而无法使用 sqlite。那么如果是这样的话,xml 选项呢?
  • 序列化的性能确实较差,但除非您在游戏或模拟等实时应用程序中执行大量操作,否则您不会注意到差异。我对 50 多个取证会话的 ArrayList 使用序列化,其中包含有关每个会话的大量数据,并且序列化非常直接。如果它对您来说运行得足够快并且不会引起任何明显的问题,那么请使用它。为了微不足道的性能提升而将事情复杂化是没有意义的。
猜你喜欢
  • 2013-09-04
  • 1970-01-01
  • 2013-06-25
  • 2014-08-11
  • 2012-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多