import Java.util.*;
import java.io.*;
/**
* refer to http://www-900.ibm.com/developerWorks/cn/java/j-tiger02254/index_eng.sHtml </br>
* or http://www-900.ibm.com/developerWorks/cn/java/j-tiger02254/index.shtml
*/
public class LoadProperties
{
public static void main(String[] args) throws Exception {
Properties prop = new Properties();
//load properties from configuration file
System.out.println("From properties file:");
FileInputStream fis = new FileInputStream("sample.properties");
prop.load(fis);
prop.list(System.out);
System.out.println("\nThe foo property: " + prop.getProperty("foo"));
//load properties from XML property file(Tiger new method)
System.out.println("From xml file:");
fis =new FileInputStream("sampleprops.xml");
/**
*<pre>The XML document must have the following DOCTYPE declaration:
*<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
*the dtd file :
*<?xml version="1.0" encoding="UTF-8"?>
*<!-- DTD for properties -->
*<!ELEMENT properties ( comment?, entry* ) >
*<!ATTLIST properties version CDATA #FIXED "1.0">
*<!ELEMENT comment (#PCDATA) >
*<!ELEMENT entry (#PCDATA) >
*<!ATTLIST entry key CDATA #REQUIRED>
*</pre>
*/
prop.loadFromXML(fis);
prop.list(System.out);
System.out.println("\nThe foo property: " + prop.getProperty("foo"));
//生成xml文件
System.out.println("prodUCe a xml file");
prop = new Properties();
prop.setProperty("one-two", "buckle my shoe");
prop.setProperty("three-four", "shut the door");
prop.setProperty("five-six", "pick up sticks");
prop.setProperty("seven-eight", "lay them straight");
prop.setProperty("nine-ten", "a big, fat hen");
FileOutputStream fos = new FileOutputStream("rhyme.xml");
/*
*default encoding is UTF-8,
* if you need specify encoding,
* use storeToXML(OutputStream os,String comment,String encoding) instead
*/
prop.storeToXML(fos, "Rhyme");//prop.storeToXML(fos, "Rhyme","GBK");
fos.close();//The specified stream remains open after storeToXML() returns,so must close obviously
/**
*生成的xml如下(DTD如上所述):
*<?xml version="1.0" encoding="UTF-8"?>
*<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
*<properties>
*<comment>Rhyme</comment>
*<entry key="seven-eight">lay them straight</entry>
*<entry key="five-six">pick up sticks</entry>
*<entry key="nine-ten">a big, fat hen</entry>
*<entry key="three-four">shut the door</entry>
*<entry key="one-two">buckle my shoe</entry>
*</properties>
*/
}
}