2011-11-07 32 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的应用程序的简单数据协议。