org.springframework.util

## Class DefaultPropertiesPersister

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

- All Implemented Interfaces:
    PropertiesPersister
  Direct Known Subclasses:
    ResourcePropertiesPersister

      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 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. As of JDK 6, `Properties.load/store` is also 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 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)`, `ResourcePropertiesPersister`

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `DefaultPropertiesPersister()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `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.

    - ### 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

    - #### 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

    - #### 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)`