2015-05-09 85 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

    非常受歡迎! –

    相關問題