Java的Properties类使用实例

五 1st, 2010
291 次浏览 | 发表评论 | Trackback

一个工程项目通常需要将相关的属性配置到.properties或.xml文件中,在java.util 包下面有一个类 Properties,可以专门读写这类文件。本文通过四个实例分别对.properties或.xml文件进行读写来学习Properties类的使用。

test.properties

database.driver=com.mysql.jdbc.Driver
database.url=jdbc:mysql://localhost:3306/test
database.username=root
database.password=123

test.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<entry key="database.driver">com.mysql.jdbc.Driver</entry>
<entry key="database.url">jdbc:mysql://localhost:3306/test</entry>
<entry key="database.username">root</entry>
<entry key="database.password">123</entry>
</properties>

测试代码:

public class PropertiesTest {

 public void readProperties(){
 Properties props = new Properties();

 try {
 long beginTime = System.currentTimeMillis();
 props.load(getClass().getResourceAsStream("test.properties"));
 long endTime = System.currentTimeMillis();
 System.out.println("Use time: " + (endTime - beginTime));
 } catch (IOException e) {
 e.printStackTrace();
 }

 System.out.println(props.getProperty("database.driver"));
 System.out.println(props.getProperty("database.username"));

 }

 public void readXMLProperties(){
 Properties props = new Properties();

 try {
 long beginTime = System.currentTimeMillis();
 props.loadFromXML(getClass().getResourceAsStream("test.xml"));
 long endTime = System.currentTimeMillis();
 System.out.println("Use time: " + (endTime - beginTime));
 } catch (IOException e) {
 e.printStackTrace();
 }

 System.out.println(props.getProperty("database.driver"));
 System.out.println(props.getProperty("database.username"));
 }

 public void writeProperties(){
 Properties props = new Properties();
 props.setProperty("username", "test_username");
 props.setProperty("password", "test_password");
 PrintStream fw;
 try {
 long beginTime = System.currentTimeMillis();
 fw = new PrintStream(new File("testwrite.properties"));
 props.list(fw);
 long endTime = System.currentTimeMillis();
 System.out.println("Write properties use time: " + (endTime - beginTime));
 } catch (FileNotFoundException e) {
 e.printStackTrace();
 }

 }

 public void writeXMLProperties(){
 Properties props = new Properties();
 props.setProperty("username", "test_username");
 props.setProperty("password", "test_password");
 PrintStream fw;
 try {
 long beginTime = System.currentTimeMillis();
 fw = new PrintStream(new File("testwrite.xml"));
 props.storeToXML(fw, "test");
 long endTime = System.currentTimeMillis();
 System.out.println("Write XML use time: " + (endTime - beginTime));
 } catch (IOException e) {
 e.printStackTrace();
 }
 }

 public static void main(String[] args) {
 PropertiesTest pt = new PropertiesTest();
 pt.readProperties();
 pt.readXMLProperties();
 pt.writeProperties();
 pt.writeXMLProperties();
 }

}

运行结果:

Use time: 6
com.mysql.jdbc.Driver
root
Use time: 84
com.mysql.jdbc.Driver
root
Write properties use time: 1
Write XML use time: 26

从运行的时间看来,读取.properties文件比读取.xml文件要快的多,而且.properties文件看起来更加直观。

标签:
下一篇:JAVA连接FTP测试 上一篇:球赛赢了!
  1. 619
    五 4th, 201004:34
    #1

    非技术手,淡定路过 ..

    [回复]

  2. DAVE
    六 30th, 201018:59
    #2