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
阅读(541)
评论(0)
编辑
收藏
所属分类:
Java
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
相关文章:
web.xml中配置错误处理
利用Filter限制用户浏览权限
log4j通用配置
动态绑定和静态绑定
Java初始化顺序
对象的构造和初始化
关于多维数组
this知多少
ActionForm变量命名
Overload和Override的区别
导航
BlogJava
首页
新随笔
联系
聚合
管理
统计
随笔 - 24
文章 - 1
评论 - 68
引用 - 0
留言簿
(1)
给我留言
查看公开留言
查看私人留言
随笔档案
(24)
2007年9月 (2)
2007年8月 (2)
2007年7月 (12)
2007年6月 (8)
收藏夹
(15)
BlogJava.Net(15)
(rss)
好站珍藏
CSDN社区
DW@中国
JavaThinker
Java中文博览
Java开源大全
新东方一搏教师博客
学习资源
CodeSearch
JavaMail Api
JavaServer Pages Document
JNDI SERVICE PROVIDERS
SoftwareEngineering
搜索
积分与排名
积分 - 32562
排名 - 1312
最新评论
1. re: Java初始化顺序[未登录]
评论内容较长,点击标题查看
--li
2. re: 动态绑定和静态绑定[未登录]
变量是静态绑定
--wing
3. re: 北京之征途
到时候再说再见吧!
--北京论坛
4. re: Java初始化顺序[未登录]
鄙人也正在研究这块,现在读《java编程思想四》前几章基本上就是构造器初始化之类的概念,弄得头都大了……
--Michael
5. re: JDBC可滚动和可更新结果集
呵呵,谢谢高手啊,终于解决啦!!
--秦秦
阅读排行榜
1. Overload和Override的区别(3247)
2. 利用Filter限制用户浏览权限(2432)
3. Java:获取文件的路径(2245)
4. 动态绑定和静态绑定(2136)
5. JDBC之代码复用 (1470)
6. 钱 程序 良心(1433)
7. Java初始化顺序(1352)
8. 关于多维数组(1167)
9. 对象的构造和初始化(1054)
10. web.xml中配置错误处理(932)
评论排行榜
1. JDBC之代码复用 (13)
2. 钱 程序 良心(11)
3. 利用Filter限制用户浏览权限(10)
4. 关于多维数组(10)
5. MM心目中的程序员(4)
6. 域名备案成功(3)
7. 程序员的形象问题(3)
8. 北京之征途(3)
9. Java初始化顺序(3)
10. 今天面试第一回(2)