我正在研究这个swing项目,并认为将用户选择保存到文本文件是个好主意,所以每当程序关闭并再次打开时,旧的选择仍然存在。主要想存储复选框,单选按钮和一些整数变量等内容。这可以在普通的.txt文件中进行,还是必须使用像xml这样的东西?
这应该是为了从txt文件中获取信息并用于在JFrame中设置最新的用户选择。
答案 0 :(得分:1)
你可以使用Properties,虽然创建一个对象来保存信息并使用JAXB将其存储在XML中也很好并且更灵活(在我看来)因为XML结构允许更多树状结构,允许保存更复杂的信息,并保持相关的东西在一起。没有自动的方法来做到这一点,所以程序员必须为此编写代码。如果您的程序设置为MVC,模型 - 视图 - 控制,键入程序,您只需保存模型,可能通过我提到的JAXB。
答案 1 :(得分:1)
对于这种情况,请使用Java™ Preferences API,页面上写着:
应用程序需要首选项和配置数据才能适应 不同用户和环境的需求。 java.util.prefs 包 为应用程序提供了一种存储和检索用户和系统的方法 首选项和配置数据。数据持久存储在 依赖于实现的后备存储。有两个单独的 偏好节点的树,一个用于用户偏好,一个用于系统 偏好。
答案 2 :(得分:0)
您可以使用常规文本文件。这只是将程序中的数据编码为文本并在加载时将文本解码为表单的问题。
正如其他答案所示,您也可以使用属性来重新发明轮子。
答案 3 :(得分:0)
使用属性文件。要在窗口关闭时保存它,请使用以下代码:
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
saveProperties();
}
});
答案 4 :(得分:0)
这是属性文件的确切用法。
只需设置属性并保存到属性文件并在加载时获取这些属性即可。保存时,定义需要在键值对中保存的项目。您可以在阅读时从密钥中检索。
例如,单选按钮的属性写为;
prop.setProperty("radioselected", "true"); //true or false based on the selection
阅读时,
boolean radioSelected = Boolean.parseBoolean(prop.getProperty("radioselected"))
如果此值为true,则在加载UI时将单选按钮选中状态设置为true。如果没有保持不受控制。
有关详细信息,请参阅http://www.mkyong.com/java/java-properties-file-examples/。