Login | Register   
RSS Feed
Download our iPhone app
Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: Java Language
Expertise: Beginner
May 2, 1999

How to use Properties

I'm trying to set and save user preferences for an application to a local file. The java.util.Properties class looks like what I want, but I don't understand how to use it.

The Properties class is a Hashtable intended only to store strings. Rather than use the Hashtable put method, you use setProperty(String key, String value). To remove a key, you have to use the Hashtable remove(String key) method. The Properties class not only allows you to set and remove properties, but it also allows you to load a set of properties from an InputStream, save them to an OutputStream, and print them to a PrintStream. The load(InputStream stream) method loads a properties file, store(OutputStream output, String header) saves the properties, and list(PrintStream out) lists them. Pretty easy, eh? The following example demonstrates how to use all of these features, enabling you to create a properties file, add keys-value pairs, delete keys, and list the properties.

import java.util.*;
import java.io.*;

 * This program demonstrates how to use the Properties class.  It uses
 * some methods added in JDK 1.2 and will not work with JDK 1.1.  You
 * can add a key-value pair to a properties file using
 *          java PropertiesExample filename set key value
* and delete a key using *
 *          java PropertiesExample filename del key
* and list the property file using *
 *          java PropertiesExample filename list
* If the file does not exist when you add a key-value pair, it is created. ***/ public class PropertiesExample { public static final int SET = 1; public static final int DEL = 2; public static final int LIST = 3; public static void printUsage() { System.err.println( "Usage: PropertiesExample filename list|set|del [key] [value]"); } public static void main(String[] args) { File file; Properties properties; String filename, key = null, value = null; InputStream input; OutputStream output; int action; if(args.length < 1) { printUsage(); return; } filename = args[0]; file = new File(filename); try { if(args[1].equals("list")) { action = LIST; } else if(args[1].equals("set")) { action = SET; if(args.length < 4) { printUsage(); return; } if(!file.exists()) { System.out.println(filename + " does not exist. Creating file."); file.createNewFile(); } key = args[2]; value = args[3]; } else if(args[1].equals("del")) { action = DEL; if(args.length < 3) { printUsage(); return; } if(!file.exists()) { System.err.println(filename + " does not exist!"); return; } key = args[2]; } else { printUsage(); return; } properties = new Properties(); properties.load(input = new FileInputStream(file)); input.close(); switch(action) { case SET: properties.setProperty(key, value); break; case DEL: properties.remove(key); break; case LIST: properties.list(System.out); break; } if(action != LIST) { properties.store(output = new FileOutputStream(file), null); output.close(); } } catch(IOException e) { e.printStackTrace(); return; } } }
DevX Pro
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date