org.springframework.util

## Class DefaultPropertiesPersister

- java.lang.Object
- - org.springframework.util.DefaultPropertiesPersister

All Implemented Interfaces:
  PropertiesPersister

    public class DefaultPropertiesPersister
    extends Object
    implements PropertiesPersister

Default implementation of the `PropertiesPersister` interface. Follows the native parsing of `java.util.Properties`.

Allows for reading from any Reader and writing to any Writer, for example to specify a charset for a properties file. This is a capability that standard `java.util.Properties` unfortunately lacked up until JDK 1.5: You were only able to load files using the ISO-8859-1 charset there.

Loading from and storing to a stream delegates to `Properties.load` and `Properties.store`, respectively, to be fully compatible with the Unicode conversion as implemented by the JDK Properties class. On JDK 1.6, `Properties.load/store` will also be used for readers/writers, effectively turning this class into a plain backwards compatibility adapter.

The persistence code that works with Reader/Writer follows the JDK's parsing strategy but does not implement Unicode conversion, because the Reader/Writer should already apply proper decoding/encoding of characters. If you use prefer to escape unicode characters in your properties files, do not specify an encoding for a Reader/Writer (like ReloadableResourceBundleMessageSource's "defaultEncoding" and "fileEncodings" properties).

Since:
  10.03.2004
Author:
  Juergen Hoeller
See Also:
  `Properties`, `Properties.load(java.io.Reader)`, `Properties.store(java.io.Writer, java.lang.String)`

### Constructor Summary

Constructors
Constructor and Description
`DefaultPropertiesPersister()`

### Method Summary

Methods
`protected void` `doLoad(Properties props, Reader reader)`
`protected void` `doStore(Properties props, Writer writer, String header)`
`protected boolean` `endsWithContinuationMarker(String line)`
`protected String` `escape(String str, boolean isKey)`
`void` `load(Properties props, InputStream is)` Load properties from the given InputStream into the given Properties object.
`void` `load(Properties props, Reader reader)` Load properties from the given Reader into the given Properties object.
`void` `loadFromXml(Properties props, InputStream is)` Load properties from the given XML InputStream into the given Properties object.
`void` `store(Properties props, OutputStream os, String header)` Write the contents of the given Properties object to the given OutputStream.
`void` `store(Properties props, Writer writer, String header)` Write the contents of the given Properties object to the given Writer.
`void` `storeToXml(Properties props, OutputStream os, String header)` Write the contents of the given Properties object to the given XML OutputStream.
`void` `storeToXml(Properties props, OutputStream os, String header, String encoding)` Write the contents of the given Properties object to the given XML OutputStream.
`protected String` `unescape(String str)`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### DefaultPropertiesPersister

    public DefaultPropertiesPersister()

### Method Detail

#### load

    public void load(Properties props,
            InputStream is)
              throws IOException

Description copied from interface: `PropertiesPersister`
Load properties from the given InputStream into the given Properties object.

Specified by:
  `load` in interface `PropertiesPersister`
Parameters:
  `props` - the Properties object to load into
  `is` - the InputStream to load from
Throws:
  `IOException` - in case of I/O errors
See Also:
  `Properties.load(java.io.Reader)`

#### load

    public void load(Properties props,
            Reader reader)
              throws IOException

Description copied from interface: `PropertiesPersister`
Load properties from the given Reader into the given Properties object.

Specified by:
  `load` in interface `PropertiesPersister`
Parameters:
  `props` - the Properties object to load into
  `reader` - the Reader to load from
Throws:
  `IOException` - in case of I/O errors

#### doLoad

    protected void doLoad(Properties props,
              Reader reader)
                   throws IOException

Throws:
  `IOException`

#### endsWithContinuationMarker

    protected boolean endsWithContinuationMarker(String line)

#### unescape

    protected String unescape(String str)

#### store

    public void store(Properties props,
             OutputStream os,
             String header)
               throws IOException

Description copied from interface: `PropertiesPersister`
Write the contents of the given Properties object to the given OutputStream.

Specified by:
  `store` in interface `PropertiesPersister`
Parameters:
  `props` - the Properties object to store
  `os` - the OutputStream to write to
  `header` - the description of the property list
Throws:
  `IOException` - in case of I/O errors
See Also:
  `Properties.store(java.io.Writer, java.lang.String)`

#### store

    public void store(Properties props,
             Writer writer,
             String header)
               throws IOException

Description copied from interface: `PropertiesPersister`
Write the contents of the given Properties object to the given Writer.

Specified by:
  `store` in interface `PropertiesPersister`
Parameters:
  `props` - the Properties object to store
  `writer` - the Writer to write to
  `header` - the description of the property list
Throws:
  `IOException` - in case of I/O errors

#### doStore

    protected void doStore(Properties props,
               Writer writer,
               String header)
                    throws IOException

Throws:
  `IOException`

#### escape

    protected String escape(String str,
                boolean isKey)

#### loadFromXml

    public void loadFromXml(Properties props,
                   InputStream is)
                     throws IOException

Description copied from interface: `PropertiesPersister`
Load properties from the given XML InputStream into the given Properties object.

Specified by:
  `loadFromXml` in interface `PropertiesPersister`
Parameters:
  `props` - the Properties object to load into
  `is` - the InputStream to load from
Throws:
  `IOException` - in case of I/O errors
See Also:
  `Properties.loadFromXML(java.io.InputStream)`

#### storeToXml

    public void storeToXml(Properties props,
                  OutputStream os,
                  String header)
                    throws IOException

Description copied from interface: `PropertiesPersister`
Write the contents of the given Properties object to the given XML OutputStream.

Specified by:
  `storeToXml` in interface `PropertiesPersister`
Parameters:
  `props` - the Properties object to store
  `os` - the OutputStream to write to
  `header` - the description of the property list
Throws:
  `IOException` - in case of I/O errors
See Also:
  `Properties.storeToXML(java.io.OutputStream, String)`

#### storeToXml

    public void storeToXml(Properties props,
                  OutputStream os,
                  String header,
                  String encoding)
                    throws IOException

Description copied from interface: `PropertiesPersister`
Write the contents of the given Properties object to the given XML OutputStream.

Specified by:
  `storeToXml` in interface `PropertiesPersister`
Parameters:
  `props` - the Properties object to store
  `os` - the OutputStream to write to
  `header` - the description of the property list
  `encoding` - the encoding to use
Throws:
  `IOException` - in case of I/O errors
See Also:
  `Properties.storeToXML(java.io.OutputStream, String, String)`