public class Properties extends Hashtable<Object,Object>
\
u00e4
is the german umlaut)
s1=3 s2=MeineDisk s3=3. M\u00e4rz 96 s4=Die Diskette ''{1}'' enth\
u00e4lt {0} in {2}. s5=0 s6=keine Dateien s7=1 s8=eine Datei s9=2 s10={0,number} Dateien s11=Das Formatieren schlug fehl mit folgender Exception: {0} s12=FEHLER s13=Ergebnis s14=Dialog s15=Auswahlkriterium s16=1,3
Although this is a sub class of a hash table, you should never
insert anything other than strings to this property, or several
methods, that need string keys and values, will fail. To ensure
this, you should use the get/setProperty
method instead
of get/put
.
Properties are saved in ISO 8859-1 encoding, using Unicode escapes with
a single u
for any character which cannot be represented.
PropertyResourceBundle
,
Serialized FormModifier and Type | Field and Description |
---|---|
protected Properties |
defaults
The property list that contains default values for any keys not
in this property list.
|
Constructor and Description |
---|
Properties()
Creates a new empty property list with no default values.
|
Properties(Properties defaults)
Create a new empty property list with the specified default values.
|
Modifier and Type | Method and Description |
---|---|
String |
getProperty(String key)
Gets the property with the specified key in this property list.
|
String |
getProperty(String key,
String defaultValue)
Gets the property with the specified key in this property list.
|
void |
list(PrintStream out)
Prints the key/value pairs to the given print stream.
|
void |
list(PrintWriter out)
Prints the key/value pairs to the given print writer.
|
void |
load(InputStream inStream)
Reads a property list from the supplied input stream.
|
void |
load(Reader inReader)
Reads a property list from a character stream.
|
void |
loadFromXML(InputStream in)
Decodes the contents of the supplied
InputStream as
an XML file, which represents a set of properties. |
Enumeration<?> |
propertyNames()
Returns an enumeration of all keys in this property list, including
the keys in the default property list.
|
void |
save(OutputStream out,
String header)
Deprecated.
use
store(OutputStream, String) instead |
Object |
setProperty(String key,
String value)
Adds the given key/value pair to this properties.
|
void |
store(OutputStream out,
String header)
Writes the key/value pairs to the given output stream, in a format
suitable for
load . |
void |
storeToXML(OutputStream os,
String comment)
Encodes the properties as an XML file using the UTF-8 encoding.
|
void |
storeToXML(OutputStream os,
String comment,
String encoding)
Encodes the properties as an XML file using the supplied encoding.
|
protected Properties defaults
public Properties()
public Properties(Properties defaults)
defaults
- a Properties object containing the default valuespublic Object setProperty(String key, String value)
key
- the key for this propertyvalue
- the value for this propertygetProperty(String)
public void load(Reader inReader) throws IOException
#
or
!
is ignored. An backslash (\
) at the
end of the line makes the line continueing on the next line
(but make sure there is no whitespace after the backslash).
Otherwise, each line describes a key/value pair. \
). The key is followed by optional
whitespaces, optionally one =
or :
,
and optionally some more whitespaces. The rest of the line is
the resource belonging to the key. \t, \n, \r, \\, \", \', \!, \#, \
(a
space), and unicode characters with the
\\u
xxxx notation are detected, and
converted to the corresponding single character. # This is a comment key = value k\:5 \ a string starting with space and ending with newline\n # This is a multiline specification; note that the value contains # no white space. weekdays: Sunday,Monday,Tuesday,Wednesday,\\ Thursday,Friday,Saturday # The safest way to include a space at the end of a value: label = Name:\\u0020
inReader
- the input Reader
.IOException
- if an error occurred when reading the inputNullPointerException
- if in is nullpublic void load(InputStream inStream) throws IOException
load(Reader)
but the character encoding is assumed to be ISO-8859-1.
Unicode characters not within the Latin1 set supplied by
ISO-8859-1 should be escaped using '\\uXXXX' where XXXX
is the UTF-16 code unit in hexadecimal.inStream
- the byte stream to read the property list from.IOException
- if an I/O error occurs.load(Reader)
@Deprecated public void save(OutputStream out, String header)
store(OutputStream, String)
insteadstore(OutputStream out, String header)
and
ignores the IOException that may be thrown.out
- the stream to write toheader
- a description of the property listClassCastException
- if this property contains any key or
value that are not stringspublic void store(OutputStream out, String header) throws IOException
load
.key = value
. Newlines,
Returns and tabs are written as \n,\t,\r
resp.
The characters \, !, #, =
and :
are
preceeded by a backslash. Spaces are preceded with a backslash,
if and only if they are at the beginning of the key. Characters
that are not in the ascii range 33 to 127 are written in the
\
u
xxxx Form.out
- the output streamheader
- the header written in the first line, may be nullClassCastException
- if this property contains any key or
value that isn't a stringIOException
- if writing to the stream failsNullPointerException
- if out is nullpublic String getProperty(String key)
key
- The key for this propertyClassCastException
- if this property contains any key or
value that isn't a stringdefaults
,
setProperty(String, String)
,
getProperty(String, String)
public String getProperty(String key, String defaultValue)
key
- The key for this propertydefaultValue
- A default valueClassCastException
- if this property contains any key or
value that isn't a stringdefaults
,
setProperty(String, String)
public Enumeration<?> propertyNames()
public void list(PrintStream out)
out
- the print stream, where the key/value pairs are written toClassCastException
- if this property contains a key or a
value that isn't a stringlist(PrintWriter)
public void list(PrintWriter out)
out
- the print writer where the key/value pairs are written toClassCastException
- if this property contains a key or a
value that isn't a stringlist(PrintStream)
public void storeToXML(OutputStream os, String comment) throws IOException
Encodes the properties as an XML file using the UTF-8 encoding. The format of the XML file matches the DTD http://java.sun.com/dtd/properties.dtd.
Invoking this method provides the same behaviour as invoking
storeToXML(os, comment, "UTF-8")
.
os
- the stream to output to.comment
- a comment to include at the top of the XML file, or
null
if one is not required.IOException
- if the serialization fails.NullPointerException
- if os
is null.public void storeToXML(OutputStream os, String comment, String encoding) throws IOException
Encodes the properties as an XML file using the supplied encoding. The format of the XML file matches the DTD http://java.sun.com/dtd/properties.dtd.
os
- the stream to output to.comment
- a comment to include at the top of the XML file, or
null
if one is not required.encoding
- the encoding to use for the XML output.IOException
- if the serialization fails.NullPointerException
- if os
or encoding
is null.public void loadFromXML(InputStream in) throws IOException, InvalidPropertiesFormatException
Decodes the contents of the supplied InputStream
as
an XML file, which represents a set of properties. The format of
the XML file must match the DTD
http://java.sun.com/dtd/properties.dtd.
in
- the input stream from which to receive the XML data.IOException
- if an I/O error occurs in reading the input data.InvalidPropertiesFormatException
- if the input data does not
constitute an XML properties
file.NullPointerException
- if in
is null.