java.util.Properties的使用

一般的,对于一个稍有规模的软件,总会有它的配置数据(或者也称初始化数据),每当该软件启动时就从外部文件资源中读取相应的初始化数据。在Windows系统中用C++或C#来开发软件时,可以调用相应的API来操作注册表或INI文件来实现此功能。在java中,java.util.Properties类便扮演了此功能的角色,它继承自java.util.Hashtable<Object,Object>类,下面先列举该类几个有用的成员函数。

Enumeration<?> propertyNames()  返回属性列表中所有键的枚举,如果在主属性列表中未找到同名的键,则包括默认属性列表中不同的键。

Object setProperty(String key, String value) 设置(属性,属性值)对,调用 Hashtable 的方法 put。

String getProperty(String key)  用指定的键在此属性列表中搜索属性。

void store(OutputStream out, String comments) 以适合使用 load 方法加载到 Properties 表中的格式,将此 Properties 表中的属性列表(键和元素对)写入输出流。

void load(InputStream inStream) 从输入流中读取属性列表(键和元素对)。

void storeToXML(OutputStream os, String comment) 发出一个表示此表中包含的所有属性的 XML 文档。

void void loadFromXML(InputStream in) 将指定输入流中由 XML 文档所表示的所有属性加载到此属性表中。
 
一般情况下只需要这几个就够了,个人比较喜欢使用loadFromXML和storeToXML组合,更多成员函数可查看java文档。


下面的代码演示了它的使用。。。

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;
public class PropertiesDemo {
 final private String APP_NAME="appName";    //系统名称属性
 final private String DEVELOPER="developer";   //系统开发者属性
 private String appName;        //系统名称属性值
 private String developer;        //系统开发者属性值
 
 public PropertiesDemo()
 { 
 }
 public PropertiesDemo(String appName,String developer)
 {
  this.appName=appName;
  this.developer=developer;
 }
 public String getAppName() {
  return appName;
 }
 public void setAppName(String appName) {
  this.appName = appName;
 }
 public String getDeveloper() {
  return developer;
 }
 public void setDeveloper(String developer) {
  this.developer = developer;
 }
 //载入系统配置数据
 public void loadData() throws IOException
 {
  Properties p=new Properties();
  FileInputStream appconfig=new FileInputStream("appconfig.xml");
  p.loadFromXML(appconfig);
  this.appName=p.getProperty(this.APP_NAME);
  this.developer=p.getProperty(this.DEVELOPER);
  appconfig.close();
 }
 //保存系统配置数据
 public void storeData() throws IOException
 {
  Properties p=new Properties();
  p.setProperty(this.APP_NAME, this.appName);
  p.setProperty(this.DEVELOPER, this.developer);
  FileOutputStream appconfig=new FileOutputStream("appconfig.xml");
  p.storeToXML(appconfig, "the application config datas");
 }
 
 public static void main(String[] args) {
  PropertiesDemo pdStore=new PropertiesDemo("PropertiesDemo","ych");
  try {
   pdStore.storeData();
  } catch (IOException ex) {
   System.out.println("保存系统配置数据错误:"+ex);
  }
  PropertiesDemo pdLoad=new PropertiesDemo();
  try {
   pdLoad.loadData();
   System.out.println("the application name:"+pdLoad.getAppName());
   System.out.println("the application developer:"+pdLoad.getDeveloper());
  } catch (IOException ex) {
   System.out.println("读取系统配置数据错误:"+ex);
  }
 }
}

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值