Class PropertiesReader
- All Implemented Interfaces:
Closeable,AutoCloseable,Readable
This class is used to read properties lines. These lines do not terminate with new-line chars but rather when there is no backslash sign a the end of the line. This is used to concatenate multiple lines for readability.
This class was pulled out of Jakarta Commons Configuration and Jakarta Commons Lang trunk revision 476093
-
Field Summary
-
Constructor Summary
ConstructorsConstructorDescriptionPropertiesReader(Reader reader) Constructor.PropertiesReader(Reader reader, char listDelimiter) Creates a new instance ofPropertiesReaderand sets the underlaying reader and the list delimiter. -
Method Summary
Modifier and TypeMethodDescriptionbooleancontains(char[] array, char objectToFind) Checks if the object is in the given array.Returns the comment lines that have been read for the last property.Returns the name of the last read property.Returns the value of the last read property.booleanParses the next property from the input stream and stores the found name and value in internal fields.Reads a property line.static voidunescapeJava(Writer out, String str) Unescapes any Java literals found in theStringto aWriter.static StringunescapeJava(String str) Unescapes any Java literals found in theString.protected static StringunescapeJava(String str, char delimiter) Unescapes any Java literals found in theStringto aWriter.Methods inherited from class java.io.LineNumberReader
getLineNumber, mark, read, read, readLine, reset, setLineNumber, skipMethods inherited from class java.io.BufferedReader
close, lines, markSupported, readyMethods inherited from class java.io.Reader
nullReader, read, read, transferTo
-
Constructor Details
-
PropertiesReader
Constructor.- Parameters:
reader- A Reader.
-
PropertiesReader
Creates a new instance ofPropertiesReaderand sets the underlaying reader and the list delimiter.- Parameters:
reader- the readerlistDelimiter- the list delimiter character- Since:
- 1.3
-
-
Method Details
-
readProperty
Reads a property line. Returns null if Stream is at EOF. Concatenates lines ending with "\". Skips lines beginning with "#" or "!" and empty lines. The return value is a property definition (<name>=<value>)- Returns:
- A string containing a property value or null
- Throws:
IOException- in case of an I/O error
-
nextProperty
Parses the next property from the input stream and stores the found name and value in internal fields. These fields can be obtained using the provided getter methods. The return value indicates whether EOF was reached (false) or whether further properties are available (true).- Returns:
- a flag if further properties are available
- Throws:
IOException- if an error occurs- Since:
- 1.3
-
getCommentLines
Returns the comment lines that have been read for the last property.- Returns:
- the comment lines for the last property returned by
readProperty() - Since:
- 1.3
-
getPropertyName
Returns the name of the last read property. This method can be called afterwas invoked and its return value was true.nextProperty()- Returns:
- the name of the last read property
- Since:
- 1.3
-
getPropertyValue
Returns the value of the last read property. This method can be called afterwas invoked and its return value was true.nextProperty()- Returns:
- the value of the last read property
- Since:
- 1.3
-
unescapeJava
Unescapes any Java literals found in the
This is a slightly modified version of the StringEscapeUtils.unescapeJava() function in commons-lang that doesn't drop escaped separators (i.e '\,').Stringto aWriter.- Parameters:
str- theStringto unescape, may be nulldelimiter- the delimiter for multi-valued properties- Returns:
- the processed string
- Throws:
IllegalArgumentException- if the Writer isnull
-
contains
public boolean contains(char[] array, char objectToFind) Checks if the object is in the given array.
The method returns
falseif anullarray is passed in.- Parameters:
array- the array to search throughobjectToFind- the object to find- Returns:
trueif the array contains the object
-
unescapeJava
Unescapes any Java literals found in the
String. For example, it will turn a sequence of'\'and'n'into a newline character, unless the'\'is preceded by another'\'.- Parameters:
str- theStringto unescape, may be null- Returns:
- a new unescaped
String,nullif null string input
-
unescapeJava
Unescapes any Java literals found in the
Stringto aWriter.For example, it will turn a sequence of
'\'and'n'into a newline character, unless the'\'is preceded by another'\'.A
nullstring input has no effect.- Parameters:
out- theWriterused to output unescaped charactersstr- theStringto unescape, may be null- Throws:
IllegalArgumentException- if the Writer isnullIOException- if error occurs on underlying Writer
-