Properties屬性持久化
在編寫Java程序的時候為了讓Java具有更好的可擴展性,我們需要將一些常用的、需要的根據實際情況改變的屬性存在文本文件中。JDK5提供了屬性持久化支持。
java.util.Properties中提供了對普通文本和xml文件屬性的讀取方法。在利用Java對屬性文件進行讀取和更新前我們需要先將文件加入輸入輸出流中。
1.屬性讀取:讀取普通文本可以使用load(InputStream in)、loadFromXML(InputStream in)方法將輸入流內容讀入屬性列表。然后,通過getProperty(String key)按照指定的鍵在此屬性列表中搜索屬性。
2. 屬性更新:更新屬性列表setProperty(String key,String value),store(OutputStream out,String comments)和storeToXML(OutputStream out,String comments)可以將屬性列表寫入輸出流中。
Properties繼承自Hashtable,Properties類的出現簡化了對屬性持久化的操作。屬性持久化又大大簡化了建立高擴展性程序的過程。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>LiKui</comment>
<entry key="oracle_url">jdbc:oracle:thin:@localhost:1521:nitpro</entry>
<entry key="oracle_user">scott</entry>
<entry key="oracle_name">nitpro</entry>
<entry key="oracle_pwd">tiger</entry>
<entry key="user_name">likui</entry>
</properties>
java.util.Properties中提供了對普通文本和xml文件屬性的讀取方法。在利用Java對屬性文件進行讀取和更新前我們需要先將文件加入輸入輸出流中。
1.屬性讀取:讀取普通文本可以使用load(InputStream in)、loadFromXML(InputStream in)方法將輸入流內容讀入屬性列表。然后,通過getProperty(String key)按照指定的鍵在此屬性列表中搜索屬性。
2. 屬性更新:更新屬性列表setProperty(String key,String value),store(OutputStream out,String comments)和storeToXML(OutputStream out,String comments)可以將屬性列表寫入輸出流中。
Properties繼承自Hashtable,Properties類的出現簡化了對屬性持久化的操作。屬性持久化又大大簡化了建立高擴展性程序的過程。
1
import java.io.File;
2
import java.io.FileInputStream;
3
import java.io.FileOutputStream;
4
import java.util.Properties;
5
public class testXml
6


{
7
public static void main(String[] args)
8

{
9
try
{
10
Properties prop=new Properties();
11
File f=new File("oracle.xml");
12
FileInputStream fis=new FileInputStream(f);
13
prop.loadFromXML(fis);
14
//prop.list(System.out);
15
System.out.println("oracle_url: "+prop.getProperty("oracle_url")
16
+" "+prop.getProperty("oracle_name")
17
+" "+prop.getProperty("oracle_user")
18
+" "+prop.getProperty("oracle_pwd"));
19
FileOutputStream fos=new FileOutputStream(f);
20
prop.setProperty("user_name","likui");
21
//向xml文件中插入key、key_value
22
prop.storeToXML(fos,"LiKui");
23
//關閉輸入、輸出流
24
fis.close();
25
fos.close();
26
}catch(Exception e)
{
27
System.out.println(e);
28
}
29
}
30
}
實例Xml文件:
2

3

4

5

6




7

8




9




10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26




27

28

29

30











posted on 2007-06-09 13:58 itkui 閱讀(543) 評論(0) 編輯 收藏 所屬分類: Java