我有一个创建java Swing应用程序的任务,用mysql数据库做一些事情,我已经计划在.properties文件中设置数据库连接属性。在该应用程序中,用户应该能够通过应用程序更改数据库属性。我遇到的问题是如何通过swing应用程序读取和编写属性文件。
try {
Properties prop = new Properties();
//reading properties
FileInputStream in = new FileInputStream("conf/properties.xml");
prop.loadFromXML(in);
System.out.println(prop.getProperty("driver"));
in.close();
//Writing properties
FileOutputStream out = new FileOutputStream("conf/properties.xml");
prop.setProperty("username", "root");
prop.storeToXML(out, "rhym");
out.close();
} catch (Exception e) {
e.printStackTrace();
}
xml文件..
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>database configuration</comment>
<entry key="driver">com.mysql.jdbc.Driver</entry>
<entry key="ip">127.0.0.1</entry>
<entry key="port">3306</entry>
<entry key="database">ofm_mnu_jvs</entry>
<entry key="username">user1</entry>
<entry key="password">123789</entry>
</properties>
答案 0 :(得分:4)
对我来说听起来像程序设计练习:)
首先,您需要编写可以将Java的Properties
对象保存到磁盘并从磁盘检索Properties
的代码。您可以通过多种方式执行此操作,但最好的方法是使用Java Properties语法将Properties
对象的内容保存到用户可编辑的文本文件中。你的解析器必须足够聪明才能弄清楚如何将文件中的文本读回Properties
对象,但实际上并不难。
一旦您的程序能够从文件中正确读取/写入Java属性语法,您就可以编写用户界面以仅处理Properties
个对象实例。每次用户更改字段或值时,UI都可以告诉您的持久性对象/方法保存Properties
实例。
最重要的是,弄清楚如何将这个程序分解成更小的部分是最重要的。您可以轻松编写一堆直接从Swing中的ActionListeners保存属性文件的单片代码,但这些代码都不可重用。将代码分解为较小的对象(Parser对象,UI对象),然后只关注那些较小的片段,一次一个,直到你可以让它们一起工作以实现你的目标。
答案 1 :(得分:3)
您不通过Swing应用程序读/写Properties
。您只需在任何Java应用程序中读取/写入Properties
(并在Properties
类的类javadoc中记录)
将.properties文件读入Properties
对象后,您可以构建一个UI来自定义Properties
实例。例如,当条目表示布尔值时,您可以使用UI中的复选框,并在用户切换复选框的选定状态时更新Properties
实例。
答案 2 :(得分:2)
http://www.java-tips.org/java-se-tips/java.util/how-to-read-and-write-a-properties-file.html 或者google在java中加载属性文件。
实际上读取属性文件将是你的一些方法。所以它根本不取决于Swing。 只需在任何集合中读取/加载属性数据,然后执行任何Swing方法或Swing组件以获取它们并显示。