java.util包中的properties类

properties类是Hashtable的子类  增加了将Hashtable对象中的关键字保存到文件和从文件中读取关键字和值到Hashtable对象中的方法
Properties.store方法存储Properties对象中的内容,每个属性的关键字和值都必须是String类型的。load方法则是从文件中读取。
总之是一个跟文件相关的类。

 

properties 如上面所说,一般和文件相关
这个文件比较特殊,必须是键值对的形式
就像windows 里的 .ini文件一样
如:
window=800*600
screen=1
左边键名,右边值,用等号连接
properties 读取文件后,会存为一个个键值对的形式,
key=window      value=800*600
等.

 

java.util包下面有一个类 Properties,该类主要用于读取以项目的配置文件(以.properties结尾的文件和xml文件)。

Properties的构造函数有两个,一个不带参数,一个使用一个Properties对象作为参数。

使用Properties读取.properties文件

 

test.properties文件如下:

#测试环境配置:平台路径配置

jstrd_home=D:/TMS2006/webapp/tms2006/WEB-INF/

dbPort = localhost

databaseName = mydb

dbUserName = root

dbPassword = root

# 以下为数据库表信息

dbTable = mytable

# 以下为服务器信息

ip = 192.168.0.9

 


读取test.properties的方法如下:

impor java.io.*;

import java.util.*;

public class ReadProperties

{


public static void main(String[] args) {

File pFile = new File("e:\\test.properties");// properties文件放在e盘下(windows)

FileInputStream pInStream=null;

 

try {

pInStream = new FileInputStream(pFile );

} catch (FileNotFoundException e) {

e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.

}

 

Properties p = new Properties();

try {

p .load(pInStream ); //Properties 对象已生成,包括文件中的数据

} catch (IOException e) {

e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.

}

 

Enumeration enu = p.propertyNames(); //取出所有的key

//输出--1

p.list(System.out) ;//System.out可以改为其他的输出流(包括可以输出到文件)

//输出--2

while( enu .hasMoreElements())

{

System.out.print("key="+enu.nextElement());

System.out.print("value="+p.getProperty((String)enu .nextElement()));

}

}

}

 

读取xml格式的配置文件

test.xml文件ruxi

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">

<properties>

<entry

<entry key="fu">baz</entry>

</properties>

 

读取xml的方法

import java.io.IOException;

import java.io.File;

import java.io.FileInputStream;

import java.util.Properties;

public class Test {

public static void main(String[] args) {

File pFile = new File("e:\\test.xml");// properties文件放在e盘下(windows)

FileInputStream pInStream = null;

 

try {

pInStream = new FileInputStream(pFile);

Properties p = new Properties();

p.loadFromXML(pInStream);

p.list(System.out);

 } catch (IOException e) {

e.printStackTrace();

}

}

}

 

通过list 方法将Properties写入Properties文件

import java.io.IOException;

import java.io.File;

import java.io.FileInputStream;

import java.io.PrintStream;

import java.util.Properties;

public class Test {


public static void main(String[] args) {

Properties p = new Properties();

p.setProperty("id","dean");

p.setProperty("password","123456");


try{

PrintStream fW = new PrintStream(new File("e:\\test1.properties"));

p.list(fW );} catch (IOException e) {

e.printStackTrace();

}

}

}

 

保存为xml

import java.io.IOException;

import java.io.File;

import java.io.FileInputStream;

import java.io.PrintStream;

import java.util.Properties;

public class Test {


public static void main(String[] args) {

Properties p = new Properties();

p.setProperty("id","dean");

p.setProperty("password","123456");


try{

PrintStream fW = new PrintStream(new File("e:\\test1.xml"));

p.storeToXML(fW,"test");

} catch (IOException e) {

e.printStackTrace();

}

}

}

posted @ 2011-10-09 23:27  finalstar  阅读(652)  评论(0编辑  收藏  举报