itkui
年少为何不轻狂!
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类的出现简化了对属性持久化的操作。属性持久化又大大简化了建立高扩展性程序的过程。
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文件:
<?
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
>
posted on 2007-06-09 13:58
itkui
阅读(141)
评论(0)
编辑
收藏
所属分类:
Java
IT新闻
新用户注册
刷新评论列表
标题
姓名
主页
验证码
*
内容(请不要发表任何与政治相关的内容)
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
该文被作者在 2007-08-29 17:06 编辑过
相关链接:
网站导航:
博客园
BlogJava
博客生活
IT博客网
C++博客
PHP博客
博客园社区
管理博客
教师博客
天文博客
汽车博客
足球博客
股票博客
电子博客
管理
相关文章:
web.xml中配置错误处理
利用Filter限制用户浏览权限
log4j通用配置
动态绑定和静态绑定
Java初始化顺序
对象的构造和初始化
关于多维数组
this知多少
ActionForm变量命名
Overload和Override的区别
导航
BlogJava
首页
新随笔
联系
聚合
管理
统计
随笔 - 24
文章 - 1
评论 - 65
引用 - 0
留言簿
给我留言
查看公开留言
查看私人留言
随笔档案
(24)
2007年9月 (2)
2007年8月 (2)
2007年7月 (12)
2007年6月 (8)
收藏夹
(16)
BlogJava.Net(16)
(rss)
好站珍藏
CSDN社区
DW@中国
JavaThinker
Java中文博览
Java开源大全
新东方一搏教师博客
学习资源
CodeSearch
JavaMail Api
JavaServer Pages Document
JNDI SERVICE PROVIDERS
SoftwareEngineering
搜索
积分与排名
积分 - 19581
排名 - 426
最新评论
1. re: Java初始化顺序[未登录]
鄙人也正在研究这块,现在读《java编程思想四》前几章基本上就是构造器初始化之类的概念,弄得头都大了……
--Michael
2. re: JDBC可滚动和可更新结果集
呵呵,谢谢高手啊,终于解决啦!!
--秦秦
3. re: Overload和Override的区别
dugfjdggjfdghgdhghjdhkg
--guohui
4. re: 程序员的形象问题
还真有点这样
--千里冰封
5. re: 今天面试第一回
看见牛在天上飞~~~~
--熊熊
阅读排行榜
1. Overload和Override的区别(2194)
2. 利用Filter限制用户浏览权限(1415)
3. 钱 程序 良心(1197)
4. JDBC之代码复用 (996)
5. 关于多维数组(899)
6. 对象的构造和初始化(805)
7. 动态绑定和静态绑定(562)
8. Java初始化顺序(498)
9. 利用ubuntu的live cd进行GRUB修复(370)
10. Java:获取文件的路径(345)
评论排行榜
1. JDBC之代码复用 (13)
2. 钱 程序 良心(11)
3. 利用Filter限制用户浏览权限(10)
4. 关于多维数组(10)
5. MM心目中的程序员(4)
6. 域名备案成功(3)
7. 程序员的形象问题(3)
8. 今天面试第一回(2)
9. 北京之征途(2)
10. Java初始化顺序(2)