2011-11-07 70 views
3

我創建了一個Swing應用程序 - GUI,其中包含TextFields,Labels,CheckBoxes和ComboBoxes等字段。當用戶輸入一些信息時,我希望將文本框,組合框和複選框的詳細信息保存到文件中,並且下次用戶打開此窗口時,我需要保存在文件中的詳細信息,即那些上次用戶輸入的信息將被加載到GUI中。任何人都可以幫助我這樣做嗎?我希望你明白這個問題,如果不是,我會以更詳細的方式解釋。java中的配置文件

非常感謝你提前。

+3

你忘了「家庭作業」標籤。 – hovanessyan

回答

6

下面是使用java.util.prefs包的簡單示例:

// Retrieve the user preference node for the package com.mycompany 
Preferences prefs = Preferences.userNodeForPackage(com.mycompany.MyClass.class); 

// Preference key name 
final String PREF_NAME = "name_of_preference"; 

// Set the value of the preference 
String newValue = "a string"; 
prefs.put(PREF_NAME, newValue); 

// Get the value of the preference; 
// default value is returned if the preference does not exist 
String defaultValue = "default string"; 
String propertyValue = prefs.get(PREF_NAME, defaultValue); // "a string" 

偏好被保存的方式是依賴於操作系統的。在Windows上,它將使用註冊表。使用

例子:http://www.exampledepot.com/egs/java.util.prefs/pkg.html

0

如果配置文件沒有使用文本編輯器只是你的序列配置到一個文件中,當你需要閱讀它反序列化是編輯。

否則,請看看Properties類,它允許您將鍵 - 值對編寫爲屬性文件或XML。您可能需要將字符串轉換爲您需要的值,即myproperty=true將返回字符串"true"的密鑰myproperty,您需要將其解析爲布爾值。

1

最簡單的方法是使用java.util.Properties,它能夠將其內容存儲在文件(屬性或xml格式)中。

如果你想要更多,你可以使用XML。您可以自己生成並解析它(使用DOM或SAX),或者更好地使用更高級別的API(例如JaxB)。

您還可以使用configuration package 可以繼續列表...

+0

我寫了下面的代碼來加載屬性文件。我在GUI中有兩個名爲和名稱的文本字段,現在我如何將這些字段中輸入的值加載到config.properties文件中,然後在下次打開窗口時再次檢索它們。我的意思是這些值應該在表格中預先加載。 Properties props = new Properties(); DatabaseOptions obj1 = new DatabaseOptions(); public void getProperties() { 嘗試props.setProperty(「Name」,「A」); props.setProperty(「Number」,「1」); (新的FileOutputStream(「config.properties」),null); } catch() – rosebrit3

+0

@AlexR,我不同意,最簡單的就是使用Preferences框架,它是專門爲此設計的。詳情請參閱我的回答。 – Guillaume

0

如果您想進行一些結構上的配置文件和不喜歡的平Java屬性格式或再亂XML標記考慮使用JSON這是一個非常好和乾淨的格式來存儲任何類型的數據結構。

http://json.org/java/

它也支持XML格式,因此它很容易,如果你需要它在XML格式由於某種原因,這些之間進行切換。如果您在某個階段進入該環境,JSON還可用作基於Web的應用程序的簡單數據協議。