Class DefaultPropertiesPersister
- java.lang.Object
-
- org.springframework.util.DefaultPropertiesPersister
-
- All Implemented Interfaces:
- PropertiesPersister
public class DefaultPropertiesPersister extends Object implements PropertiesPersister
Default implementation of thePropertiesPersister
interface. Follows the native parsing ofjava.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
andProperties.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)
-
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 interfacePropertiesPersister
- 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 interfacePropertiesPersister
- 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)
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 interfacePropertiesPersister
- 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 interfacePropertiesPersister
- 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
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 interfacePropertiesPersister
- 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 interfacePropertiesPersister
- 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 interfacePropertiesPersister
- 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)