You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
3.2 KiB
92 lines
3.2 KiB
7 years ago
|
/*
|
||
|
* Copyright 2002-2013 the original author or authors.
|
||
|
*
|
||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||
|
* you may not use this file except in compliance with the License.
|
||
|
* You may obtain a copy of the License at
|
||
|
*
|
||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||
|
*
|
||
|
* Unless required by applicable law or agreed to in writing, software
|
||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
|
* See the License for the specific language governing permissions and
|
||
|
* limitations under the License.
|
||
|
*/
|
||
|
|
||
|
package com.fr.third.springframework.util;
|
||
|
|
||
|
import java.io.IOException;
|
||
|
import java.io.InputStream;
|
||
|
import java.io.OutputStream;
|
||
|
import java.io.Reader;
|
||
|
import java.io.Writer;
|
||
|
import java.util.Properties;
|
||
|
|
||
|
/**
|
||
|
* Default implementation of the {@link PropertiesPersister} interface.
|
||
|
* Follows the native parsing of {@code java.util.Properties}.
|
||
|
*
|
||
|
* <p>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
|
||
|
* {@code java.util.Properties} unfortunately lacked up until JDK 1.5:
|
||
|
* You were only able to load files using the ISO-8859-1 charset there.
|
||
|
*
|
||
|
* <p>Loading from and storing to a stream delegates to {@code Properties.load}
|
||
|
* and {@code Properties.store}, respectively, to be fully compatible with
|
||
|
* the Unicode conversion as implemented by the JDK Properties class. As of JDK 1.6,
|
||
|
* {@code Properties.load/store} will also be used for readers/writers,
|
||
|
* effectively turning this class into a plain backwards compatibility adapter.
|
||
|
*
|
||
|
* <p>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 <i>not</i> specify
|
||
|
* an encoding for a Reader/Writer (like ReloadableResourceBundleMessageSource's
|
||
|
* "defaultEncoding" and "fileEncodings" properties).
|
||
|
*
|
||
|
* @author Juergen Hoeller
|
||
|
* @since 10.03.2004
|
||
|
* @see java.util.Properties
|
||
|
* @see java.util.Properties#load
|
||
|
* @see java.util.Properties#store
|
||
|
*/
|
||
|
public class DefaultPropertiesPersister implements PropertiesPersister {
|
||
|
|
||
|
@Override
|
||
|
public void load(Properties props, InputStream is) throws IOException {
|
||
|
props.load(is);
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public void load(Properties props, Reader reader) throws IOException {
|
||
|
props.load(reader);
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public void store(Properties props, OutputStream os, String header) throws IOException {
|
||
|
props.store(os, header);
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public void store(Properties props, Writer writer, String header) throws IOException {
|
||
|
props.store(writer, header);
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public void loadFromXml(Properties props, InputStream is) throws IOException {
|
||
|
props.loadFromXML(is);
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public void storeToXml(Properties props, OutputStream os, String header) throws IOException {
|
||
|
props.storeToXML(os, header);
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public void storeToXml(Properties props, OutputStream os, String header, String encoding) throws IOException {
|
||
|
props.storeToXML(os, header, encoding);
|
||
|
}
|
||
|
|
||
|
}
|