| public class java.util Properties
|
Java SE 6 |
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.
A property list can contain another property list as its "defaults"; this second property list is searched if the property key is not found in the original property list.
Because Properties inherits from Hashtable, the
put and putAll methods can be applied to a
Properties object. Their use is strongly discouraged as they
allow the caller to insert entries whose keys or values are not
Strings. The setProperty method should be used
instead. If the store or save method is called
on a "compromised" Properties object that contains a
non-String key or value, the call will fail. Similarly,
the call to the propertyNames or list method
will fail if it is called on a "compromised" Properties
object that contains a non-String key.
The load(Reader) /
store(Writer, String)
methods load and store properties from and to a character based stream
in a simple line-oriented format specified below.
The load(InputStream) /
store(OutputStream, String)
methods work the same way as the load(Reader)/store(Writer, String) pair, except
the input/output stream is encoded in ISO 8859-1 character encoding.
Characters that cannot be directly represented in this encoding can be written using
Unicode escapes
; only a single 'u' character is allowed in an escape
sequence. The native2ascii tool can be used to convert property files to and
from other character encodings.
The #loadFromXML(InputStream) and 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:
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">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>
| version | 1.96, 08/07/06 |
| since | JDK1.0 |
| See also | (UNLABELED), (UNLABELED) |
| Fields | |||
|---|---|---|---|
| protected Properties | defaults A property list that contains default values for any keys not found in this property list.
| ||
| Constructors | |||
|---|---|---|---|
| public | Properties() Creates an empty property list with no default values. | ||
| public | Properties(Properties defaults) Creates an empty property list with the specified defaults.
| ||
| Methods | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| public void | list(PrintStream out) Prints this property list out to the specified output stream. This method is useful for debugging.
| ||||||||||||||
| public void | list(PrintWriter out) Prints this property list out to the specified output stream. This method is useful for debugging.
| ||||||||||||||
| public void | load(Reader reader) throws IOException Reads a property list (key and element pairs) from the input character stream in a simple line-oriented format.
Properties are processed in terms of lines. There are two
kinds of line, natural lines and logical lines.
A natural line is defined as a line of
characters that is terminated either by a set of line terminator
characters (
A natural line that contains only white space characters is
considered blank and is ignored. A comment line has an ASCII
If a logical line is spread across several natural lines, the backslash escaping the line terminator sequence, the line terminator sequence, and any white space at the start of the following line have no affect on the key or element values. The remainder of the discussion of key and element parsing (when loading) will assume all the characters constituting the key and element appear on a single natural line after line continuation characters have been removed. Note that it is not sufficient to only examine the character preceding a line terminator sequence to decide if the line terminator is escaped; there must be an odd number of contiguous backslashes for the line terminator to be escaped. Since the input is processed from left to right, a non-zero even number of 2n contiguous backslashes before a line terminator (or elsewhere) encodes n backslashes after escape processing.
The key contains all of the characters in the line starting
with the first non-white space character and up to, but not
including, the first unescaped
would be the two-character key
As an example, each of the following three lines specifies the key
Truth = Beauty Truth:Beauty Truth :BeautyAs another example, the following three lines specify a single property:
fruits apple, banana, pear, \
cantaloupe, watermelon, \
kiwi, mango
The key is "fruits" and the associated element is:
"apple, banana, pear, cantaloupe, watermelon, kiwi, mango"Note that a space appears before each \ so that a space
will appear after each comma in the final result; the \,
line terminator, and leading white space on the continuation line are
merely discarded and are not replaced by one or more other
characters.
As a third example, the line:
cheesesspecifies that the key is "cheeses" and the associated
element is the empty string "".
Characters in keys and elements can be represented in escape sequences similar to those used for character and string literals (see §3.3 and §3.10.6 of the Java Language Specification). The differences from the character escape sequences and Unicode escapes used for characters and strings are:
The specified stream remains open after this method returns.
| ||||||||||||||
| public void | load(InputStream inStream) throws IOException Reads a property list (key and element pairs) from the input byte stream. The input stream is in a simple line-oriented format as specified in load(Reader) and is assumed to use
the ISO 8859-1 character encoding; that is each byte is one Latin1
character. Characters not in Latin1, and certain special characters,
are represented in keys and elements using
Unicode escapes.
The specified stream remains open after this method returns.
| ||||||||||||||
| public void | loadFromXML(InputStream in) throws IOException, InvalidPropertiesFormatException Loads all of the properties represented by the XML document on the specified input stream into this properties table. The XML document must have the following DOCTYPE declaration: <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">Furthermore, the document must satisfy the properties DTD described above. The specified stream is closed after this method returns.
| ||||||||||||||
| public Enumeration | propertyNames() Returns an enumeration of all the keys in this property list, including distinct keys in the default property list if a key of the same name has not already been found from the main properties list.
| ||||||||||||||
| public void | save(OutputStream out, String comments) Calls the store(OutputStream out, String comments) method
and suppresses IOExceptions that were thrown.
| ||||||||||||||
| public void | store(Writer writer, String comments) throws IOException Writes this property list (key and element pairs) in this Properties table to the output character stream in a
format suitable for using the load(Reader)
method.
Properties from the defaults table of this
If the comments argument is not null, then an ASCII
Next, a comment line is always written, consisting of an ASCII
Then every entry in this After the entries have been written, the output stream is flushed. The output stream remains open after this method returns.
| ||||||||||||||
| public void | store(OutputStream out, String comments) throws IOException Writes this property list (key and element pairs) in this Properties table to the output stream in a format suitable
for loading into a Properties table using the
load(InputStream) method.
Properties from the defaults table of this
This method outputs the comments, properties keys and values in
the same format as specified in
After the entries have been written, the output stream is flushed. The output stream remains open after this method returns.
| ||||||||||||||
| public void | storeToXML(OutputStream os, String comment) throws IOException Emits an XML document representing all of the properties contained in this table. An invocation of this method of the form props.storeToXML(os, comment) behaves in exactly the same way as the invocation props.storeToXML(os, comment, "UTF-8");.
| ||||||||||||||
| public void | storeToXML(OutputStream os, String comment, String encoding) throws IOException Emits an XML document representing all of the properties contained in this table, using the specified encoding. The XML document will have the following DOCTYPE declaration: <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> If the specified comment is The specified stream remains open after this method returns.
| ||||||||||||||
| public Set | stringPropertyNames() Returns a set of keys in this property list where the key and its corresponding value are strings, including distinct keys in the default property list if a key of the same name has not already been found from the main properties list. Properties whose key or value is not of type String are omitted. The returned set is not backed by the Properties object. Changes to this Properties are not reflected in the set, or vice versa.
| ||||||||||||||
| Properties | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| public Object | setProperty(String key, String value) Calls the Hashtable method put. Provided for
parallelism with the getProperty method. Enforces use of
strings for property keys and values. The value returned is the
result of the Hashtable call to put.
| ||||||||||
| public String | getProperty(String key) Searches for the property with the specified key in this property list. If the key is not found in this property list, the default property list, and its defaults, recursively, are then checked. The method returns null if the property is not found.
| ||||||||||
| public String | getProperty(String key, String defaultValue) Searches for the property with the specified key in this property list. If the key is not found in this property list, the default property list, and its defaults, recursively, are then checked. The method returns the default value argument if the property is not found.
| ||||||||||
| About DocWeb · Bundles · Export · Export All | Top 10 · Statistics · Login |
| About Sun · Contact · Privacy · Terms of Use · Trademarks | Java SE 6 · Copyright © 1994-2009 Sun Microsystems, Inc.All rights reserved. Use is subject to license terms |
![]() |
![]() |
|