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.Properties class extends Hashtable so methods like
get, hashCode, isEmpty, keys, keySet, put, putAll, rehash, remove, size can be applied to Properties class.
Lets see a simple Java Properties counter example, here we will read count values ie load value from a data.properties file and just increment the value and again store in
data.properties file. Each time we run this example it increment the count value.
/* PropertiesExample.java */
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;
public class PropertiesExample {
public static void main(String[] args) {
Properties prop = new Properties();
//load Properties prop from a file
try {
prop.load(new FileInputStream("data.properties"));
} catch (IOException e) {
System.out.println("IOException :: "+e);
}
//get values of count
String count = prop.getProperty("count");
System.out.println("count = "+count);
//just incrementing value of count
int newCount = Integer.parseInt(count);
newCount++;
//set the new value of count
prop.setProperty("count",""+newCount);
//save the file
try {
prop.store(new FileOutputStream("data.properties"),"This is a simple example");
} catch (IOException e) {
System.out.println("IOException :: "+e);
}
}
}
data.properties
#This is a simple example
#Mon Aug 23 13:05:22 IST 2010
count=12
Output
However you can also store / load the data in XML (.xml) file rather than .properties file using
storeToXML(OutputStream os, String comment)
and loadFromXML(InputStream in)
method.Also you can iterate through all parameters in Properties using
propertyNames()
and stringPropertyNames().
Lets look at API for more details
For eg. Data.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>This is a simple example</comment>
<entry key="count">10</entry>
</properties>
properties file example
# this is a comment
! this is also a comment
a = a string
b = a string with escape sequences \t \n \r \\ \" \' \ (space) \u0123
c = a string with a continuation line
\ continuation line
d.e.f = another string