2012-03-12 25 views
3

我有一個分配創建一個Java Swing應用程序做一些東西與MySQL數據庫文件,我已經擬設置在屬性文件的數據庫連接屬性。在該應用程序中,用戶應該可以通過應用程序更改數據庫屬性。我得到的問題是如何通過swing應用程序讀取和寫入屬性文件。讀取和寫入性能在Java 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> 
+3

你有什麼[嘗試](http://docs.oracle.com/javase/tutorial/essential/environment/properties.html)? – trashgod 2012-03-12 16:24:41

+2

你對哪部分感到困惑? ActionListeners或寫入和讀取文件? – 2012-03-12 16:25:30

+0

請閱讀[閱讀和編寫屬性文件]的Java文檔(http://docs.oracle.com/javase/tutorial/essential/environment/properties.html)。這個問題不屬於Swing,在我看來,你缺乏一個想法,如何將它融入Swing中。好了,我的答案就來了:-) – 2012-03-12 17:02:47

回答

4

聽起來像是一個程序的設計工作,以我:)

首先,你需要編寫代碼,可以處理堅持Java的Properties對象到磁盤,並從磁盤檢索Properties。您可以通過多種方式來完成此操作,但最好的方法是使用Java Properties語法將Properties對象的內容保存爲用戶可編輯的文本文件。解析器將不得不足夠聰明,知道如何從文件讀取回到一個Properties對象文本,但它真的沒有那麼難做到。

一旦你的程序能夠正確地讀/寫Java屬性從文件中的語法,你可以寫你的用戶界面只與Properties對象實例處理。每當用戶更改字段或值時,UI可以告訴您的持久性對象/方法保存Properties實例。

底線是,要弄清楚如何打破這種程序成小塊,這是最重要的。您可以輕鬆編寫一堆單獨的代碼,直接將您的屬性文件從ActionListeners保存到Swing中,但是沒有任何代碼可以重複使用。將你的代碼分解成更小的對象(解析器對象,UI對象),然後只集中在那些小塊,一次一個,直到你可以讓它們一起工作來實現你的目標。

3

你不讀/通過一個Swing應用程序編寫Properties。你剛纔讀/寫Properties,你會做它在任何Java應用程序(這是在Properties類的類Javadoc文檔)

一旦你閱讀的.properties文件到一個Properties對象,你可以建立一個用戶界面來自定義那個Properties實例。例如,當一個條目表示一個布爾值,則可以在用戶界面中使用複選框,並且當用戶切換複選框的選擇狀態更新Properties實例。