2015-05-09 57 views
0

我正在开发第一个项目,FlashCard应用程序。如何存储和检索用户特定的数据

我想为每个用户创建一个profile,以便用户可以进行单独的设置。

除此之外,我想组织围绕该配置文件的用户数据。例如,我想为每个用户的配置文件创建一个文件夹,其中serialized files are being stored

  1. 什么是适当的格式来存储此类型的数据?

直觉上,我会选择xml。不过,我还没有用过它。

  • 使用配置文件和序列化的数据
  • 在此,我check at program start whether any profiles exist at all工作时这是一般workflow

    如果是这种情况,用户应该能够添加或加载配置文件。否则,应提示用户创建配置文件。

    有一次,一个配置文件已被加载,我会deserialize所有的数据是associated与这个特定的profile

    这有道理吗?

    干杯, Adnrew

    +0

    什么是序列化?在Java语言中,对对象进行序列化是您想要将其写入磁盘或流时要执行的操作。但有时你真的想将一个Object中的数据写入数据库或文件中。 –

    +0

    我将序列化用户创建的对象(闪存卡,卡座)并将它们写入文件。 –

    +0

    好的......当您使用Java序列化API时,它会处理您的大部分问题。我相信序列化的对象将被存储为二进制文件。 –

    回答

    2
    1. 除非你想分享与其他程序的配置文件数据,你可以简单地使用Java默认序列化机制。添加等领域的数据结构需要

    public class Profile implements java.io.Serializable { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }

    的文件将被存储在二进制格式。所以你可以给它任何你想要的扩展名,例如profile1.dat

  • 通过使用ObjectInputStreamhttps://docs.oracle.com/javase/8/docs/api/java/io/ObjectInputStream.htmlObjectOutputStreamhttps://docs.oracle.com/javase/8/docs/api/java/io/ObjectOutputStream.html您可以轻松地序列化/反序列化您的个人资料,或者您需要写入到文件的任何其他数据
  • 首先你将定义存储您的配置文件数据的目录结构。它可以与应用程序在同一个目录中,比如“profiles /”。当程序启动时,它会检查“profiles /”目录中是否有任何配置文件数据文件,如果是,则会列出它们供用户选择,否则将提示用户创建一个新配置文件。

    +0

    谢谢你好方法。只有一个问题说我有个人资料“profile01”。用户现在创建数据,说一个DeckObj包含一些CardObjects。我将如何连接这两个(配置文件以及由该配置文件创建的数据,即它是用户)?我读过java自动序列化与对象关联的对象。因此,在这种情况下只添加一个容器来保存与配置文件相关联的对象是正确的。其他递归序列化的类是否也需要实现Serializable或只有“顶级”? –

    +0

    通常,您想将单个文件写入磁盘。因此,profile01将包含单个用户所需的一切。首选项,数据,设置等等,这意味着Profile类需要有字段 - 引用这些东西,以便您可以轻松地将配置文件的实例写入磁盘并从中读回。因此,Profile类可能具有以下字段: '私人甲板甲板; 私人偏好设置偏好; 私有设置设置;' 是的所有自定义类都必须实现java.io.Serializable才能被序列化,大部分标准库类和所有原始数据类型都实现它 – AlmasB

    +0

    非常受欢迎! –

    相关问题