【问题标题】:Configuration Files in javajava中的配置文件
【发布时间】:2011-12-23 15:40:37
【问题描述】:

我创建了一个 Swing 应用程序 - GUI,其中包含文本字段、标签、复选框和组合框等字段。当用户输入一些信息时,我希望将文本字段、组合框和复选框的详细信息保存到文件中,并且下次用户打开此窗口时,我希望已保存在文件中的详细信息,即那些用户上次输入的要加载到 GUI 中的内容。谁能帮我做这件事?我希望你理解这个问题,如果没有,我会更详细地解释。

提前非常感谢您。

【问题讨论】:

  • 你忘记了“作业”标签。

标签: java file swing configuration configuration-files


【解决方案1】:

这是一个使用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

【讨论】:

    【解决方案2】:

    最简单的方法是使用java.util.Properties,它能够将其内容存储在文件中(属性或xml格式)。

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

    您也可以使用configuration package 列表可以继续...

    【讨论】:

    • 我编写了以下代码来加载属性文件。我在 GUI 中有两个名为 name 和 number 的文本字段,现在如何将我在这些字段中输入的值加载到 config.properties 文件中,然后如何在下次打开窗口时再次检索它们。我的意思是这些值应该预先加载到表单中。属性 props=new Properties();数据库选项 obj1=新的数据库选项(); public void getProperties() { try{ props.setProperty("Name", "A"); props.setProperty("数字", "1"); props.store(new FileOutputStream("config.properties"), null); }catch()
    • @AlexR,我不同意,最简单的是使用 Preferences 框架,它是专门为此设计的。详情见我的回答。
    【解决方案3】:

    如果配置文件不必使用文本编辑器进行编辑,只需将您的配置序列化为一个文件,并在需要阅读时反序列化它。

    否则,请查看Properties 类,它允许您将键值对编写为属性文件或 XML。不过,您可能需要将字符串转换为您需要的值,即 myproperty=true 将返回字符串 "true" 作为键 myproperty,并且您需要将其解析为布尔值。

    【讨论】:

      【解决方案4】:

      如果您希望配置文件具有某种结构,并且不喜欢扁平的 java 属性格式或凌乱的 XML 标记,那么请考虑使用 JSON,这是一种非常漂亮且干净的格式,用于存储任何类型的数据结构。

      http://json.org/java/

      它还支持 XML 格式,因此如果您出于某种原因需要 XML 格式,可以轻松地在这些格式之间切换。如果您在某个阶段使用 JSON,那么它也可用作基于 Web 的应用程序的简单数据协议。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-08-02
        • 1970-01-01
        • 2016-12-26
        • 1970-01-01
        • 2012-08-26
        • 2012-09-15
        • 2015-01-30
        • 1970-01-01
        相关资源
        最近更新 更多