将类和对象保存到文件(Java)

时间:2010-09-14 07:23:39

标签: java

tldr:我是使用持久数据的程序的新手,我正在寻找保存/加载文件的正确方法。有人能指出我正确的方向吗?

我正在进行一个涉及在两个相关系统之间大量保存和加载文件的项目。简而言之,有一个程序可以作为开发人员的“构建者”,另一个程序是客户端的“接口”。

在“构建器”中,开发人员可以定义项目及其可能的属性,客户端可以在界面中与之交互。例如,开发者可以制作一个名为“car”的物品,它可能具有颜色,型号和速度属性;还有一个名为'house'的项目,它有尺寸,颜色。他可以制作任意数量的项目,这些项目可能是多种多样的,每个项目都有一些共同的属性(名称,颜色)以及一系列不同的属性。

在“界面”中,客户可以在他们的世界中选择任意数量的项目。即,他们可能需要2辆车和1个房子,并分别定义他们的属性,其中一辆车是Fast Red Hotrod,另一辆是Slow White Van,房子是Brown和3x2。

Car和House都是Item的实例,但客户进一步指定了2个不同的Car实例。

目前我已将不同的实例(汽车,房屋等)保存到文本文件中,这似乎运行良好,但我确信必须有更好的方法(特别是因为我打算在客户端界面上运行Android的)。任何人都可以指出我正确的方向或一些可以帮助我做出选择的材料吗?

3 个答案:

答案 0 :(得分:3)

一个选项是使用Java二进制序列化。我个人会避免这种选择。

还有很多其他的序列化框架。例如,我已经将Google的Protocol Buffers框架移植到C#,所以我通常偏向于此 - 但是还有很多其他选项,例如:

这些选项通常具有以下优势:

  • 可移植到其他平台(考虑将来是否要构建iPhone或Windows Phone 7应用程序)
  • 向后兼容性
  • 人类可读性(或易于转换为人类格式)
  • 其中一些非常紧凑,

不可否认,Java二进制序列化使它在工作时非常容易 - 但在其他方面可能会很麻烦。只是我的经历。

答案 1 :(得分:1)

数据库是放置持久数据的绝佳场所。

答案 2 :(得分:0)

您可以使用序列化。您需要检查如何在Android上访问文件/转换。