Java Notes
Properties
Note: The function of the java.util.Properties class,
to save and restore the properties for a program,
might be easier to do using java.util.Preferences.
See Preferences.
The java.util.Properties class
stores and loads key/value pairs from a file, and manages them
in memory.  This is the class to use to implement persistent variables
(values which are saved in a file).
To create and put values in a Properties table
This example creates a new Properties table and assigns a string value to four different keys.
Properties props = new Properties(); 
props.setProperty("recursiveSearch", "true");
props.setProperty("noCopyPattern", "*.$$$");
props.setProperty("maxLevel", "7");
props.setProperty("fileName", "C:\temp\work.html");
To store a Properties table in a file
Use the Properties .store(OutputStream, String) method.
It will write the properties to the output stream, with a header
line from the String parameter.
Assuming you have variables and an OutputStream like:
boolean recursiveSearch;
String noCopyPattern;
int maxLevel;
. . .
try {
  OutputStream propOut = new FileOutputStream(
            new File("props.stat"));
}catch (. . .
To change values from their natural types to String, the usual idiom is to use concatenation of the empty string..
props.setProperty("recursiveSearch", ""+recursiveSearch);
props.setProperty("noCopyPattern"  , noCopyPattern");
props.setProperty("maxLevel"       , ""+maxLevel);
props.store(propOut, "Macro Processor Properties");
To load Properties from a file
Use the Properties .load(InputStream); method.
You will probably want to get each property value and assign it to an internal variable and perhaps show it in the user interface. For example,
boolean recursiveSearch;
String noCopyPattern;
int maxLevel;
. . .
props.load(propsIn);
// Change the properties back into their natural types.
recursiveSearch = Boolean.getBoolean(props.getProperty("recursiveSearch"));
noCopyPattern = props.getProperty("noCopyPattern");
maxLevel = Integer.parseInt(props.getProperty("maxLevel");
To use default properties
- Create a Properties table with all of the default key/value pairs.
       For example,
Properties defaultProps = new Properties(); defaultProps.setProperty("sourceFile", ""); defaultProps.serProperty("enableScrolling", "false"); - Use this default table in the constructor for your regular 
   properties table:
Properties props = new Properties(defaultProps);
 
Constructor and Method Summary
Properties() Properties(Properties defaultValues) Object setProperty(String key, String value) String getProperty(String key) String getProperty(String key, String defaultValue) Enumeration propertyNames() void load(InputStream in) void store(OutputStream out, String header)