Use an INI file (properties)Tag(s): Language
Open Source packages
The ini4j is a simple Java API for handling configuration files in Windows .INI format.As a bonus, ini4j can deal with variable subsitution, parse .REG file and write or read the registry.
The Apache Commons Configuration package provides the HierarchicalINIConfiguration class to handle Windows INI file.
http://commons.apache.org/configuration/
Using Properties
The structure of a Properties is very similar to Windows INI file with except that there is no [...] section.[Props file : user.props]
# this a comment ! this a comment too DBuser=anonymous DBpassword=&8djsx DBlocation=bigone
[JAVA code]
import java.util.*;
import java.io.*;
class ReadProps {
public static void main(String args[]) {
ReadProps props = new ReadProps();
props.doit();
}
public void doit() {
try{
Properties p = new Properties();
p.load(new FileInputStream("user.props"));
System.out.println("user = " + p.getProperty("DBuser"));
System.out.println("password = " + p.getProperty("DBpassword"));
System.out.println("location = " + p.getProperty("DBlocation"));
p.list(System.out);
}
catch (Exception e) {
System.out.println(e);
}
}
}
Since the Properties class extends the Hashtable, we can manipulate the Properties through the get and put methods. The modified data can be saved back to a file with the save method. This can be useful to store user preferences for example. Note that the order is not preserved.
import java.util.*;
import java.io.*;
class WriteProps {
public static void main(String args[]) {
WriteProps props = new WriteProps();
props.doit();
}
public void doit() {
try{
Properties p = new Properties();
p.load(new FileInputStream("user.props"));
p.list(System.out);
// new Property
p.put("today", new Date().toString());
// modify a Property
p.put("DBpassword","foo");
FileOutputStream out = new FileOutputStream("user.props");
p.save(out, "/* properties updated */");
}
catch (Exception e) {
System.out.println(e);
}
}
}To read a Properties file via an Applet, load the Properties files this way :
p.load((new URL(getCodeBase(), "user.props")).openStream());
URL url =
ClassLoader.getSystemResource("/com/rgagnon/config/system.props");
if (url != null) props.load(url.openStream());
mail_outline
Send comment, question or suggestion to howto@rgagnon.com
Send comment, question or suggestion to howto@rgagnon.com