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文件:
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
2
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
3
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
4
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
5
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
6
![](https://i-blog.csdnimg.cn/blog_migrate/1fa987a29c6482f53d401256f96355eb.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/9b8a8a44dd1c74ae49c20a7cd451974e.gif)
7
![](https://i-blog.csdnimg.cn/blog_migrate/d18c02628675d0a2c816449d98bda930.gif)
8
![](https://i-blog.csdnimg.cn/blog_migrate/97e794c86028c5f5b5461ae5ef440a4c.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/9b8a8a44dd1c74ae49c20a7cd451974e.gif)
9
![](https://i-blog.csdnimg.cn/blog_migrate/97e794c86028c5f5b5461ae5ef440a4c.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/9b8a8a44dd1c74ae49c20a7cd451974e.gif)
10
![](https://i-blog.csdnimg.cn/blog_migrate/d18c02628675d0a2c816449d98bda930.gif)
11
![](https://i-blog.csdnimg.cn/blog_migrate/d18c02628675d0a2c816449d98bda930.gif)
12
![](https://i-blog.csdnimg.cn/blog_migrate/d18c02628675d0a2c816449d98bda930.gif)
13
![](https://i-blog.csdnimg.cn/blog_migrate/d18c02628675d0a2c816449d98bda930.gif)
14
![](https://i-blog.csdnimg.cn/blog_migrate/d18c02628675d0a2c816449d98bda930.gif)
15
![](https://i-blog.csdnimg.cn/blog_migrate/d18c02628675d0a2c816449d98bda930.gif)
16
![](https://i-blog.csdnimg.cn/blog_migrate/d18c02628675d0a2c816449d98bda930.gif)
17
![](https://i-blog.csdnimg.cn/blog_migrate/d18c02628675d0a2c816449d98bda930.gif)
18
![](https://i-blog.csdnimg.cn/blog_migrate/d18c02628675d0a2c816449d98bda930.gif)
19
![](https://i-blog.csdnimg.cn/blog_migrate/d18c02628675d0a2c816449d98bda930.gif)
20
![](https://i-blog.csdnimg.cn/blog_migrate/d18c02628675d0a2c816449d98bda930.gif)
21
![](https://i-blog.csdnimg.cn/blog_migrate/d18c02628675d0a2c816449d98bda930.gif)
22
![](https://i-blog.csdnimg.cn/blog_migrate/d18c02628675d0a2c816449d98bda930.gif)
23
![](https://i-blog.csdnimg.cn/blog_migrate/d18c02628675d0a2c816449d98bda930.gif)
24
![](https://i-blog.csdnimg.cn/blog_migrate/d18c02628675d0a2c816449d98bda930.gif)
25
![](https://i-blog.csdnimg.cn/blog_migrate/d18c02628675d0a2c816449d98bda930.gif)
26
![](https://i-blog.csdnimg.cn/blog_migrate/97e794c86028c5f5b5461ae5ef440a4c.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/9b8a8a44dd1c74ae49c20a7cd451974e.gif)
27
![](https://i-blog.csdnimg.cn/blog_migrate/d18c02628675d0a2c816449d98bda930.gif)
28
![](https://i-blog.csdnimg.cn/blog_migrate/ecedf933ec37d714bd4c2545da43add2.gif)
29
![](https://i-blog.csdnimg.cn/blog_migrate/ecedf933ec37d714bd4c2545da43add2.gif)
30
![](https://i-blog.csdnimg.cn/blog_migrate/8f1ba5b45633e9678d1db480c16cae3f.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)