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
    Modifier and Type | Method and Description
    --- | ---
    `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)`