Java的Properties类使用实例
一个工程项目通常需要将相关的属性配置到.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文件看起来更加直观。
非技术手,淡定路过 ..
[回复]