FAQ

Java

JSP

Servlet


Advertisement



How to Load Java Properties from the XML File?

The java.util.Properties class represents a persistent set of properties. The Properties can be saved to a stream or loaded from a stream. Each key and its corresponding value in the property list is a string. In Java 5.0, the java.util.Properties class allows you not only to use it to specify key-value pairs on a single line separated by an equal sign, but also to use XML files to load and save those key-value pairs.

The loadFromXML(InputStream) and storeToXML(OutputStream, String, String) methods load and store properties in a simple XML format. By default the UTF-8 character encoding is used, however a specific encoding may be specified if required. An XML properties document has the following DOCTYPE declaration:

 

Note that the system URI (http://java.sun.com/dtd/properties.dtd) is not accessed when exporting or importing properties; it merely serves as a string to uniquely identify the DTD, which is:

    <?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>

The following file application.xml is an example of the XML file based on above DTD

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>-- Properties File Comments --</comment>
<entry key="Key1">Value1</entry>
<entry key="Key2">Value2</entry>
</properties>

Here is the code which generates to application.xml file:

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.Properties;

public class XMLProperties {
public static void main(String args[]) {
try {
Properties prop = new Properties();
prop.setProperty("key1", "value1");
prop.setProperty("key2", "value2");

FileOutputStream out = new FileOutputStream("application.xml");
prop.storeToXML(out,"-- Properties File Comments --");
out.close();

FileInputStream in = new FileInputStream("application.xml");

Properties prop1 = new Properties();
prop1.loadFromXML(in);
prop1.list(System.out);

}
catch(Exception e) {
e.printStackTrace();
}

}
}


Printer-friendly version Printer-friendly version | Send this 
article to a friend Mail this to a friend

Previous Next vertical dots separating previous/next from contents/index/pdf Contents

  |   |