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 ofPropertiesReader
and sets the underlaying reader and the list delimiter. -
Method Summary
Modifier and TypeMethodDescriptionboolean
contains
(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.boolean
Parses the next property from the input stream and stores the found name and value in internal fields.Reads a property line.static void
unescapeJava
(Writer out, String str) Unescapes any Java literals found in theString
to aWriter
.static String
unescapeJava
(String str) Unescapes any Java literals found in theString
.protected static String
unescapeJava
(String str, char delimiter) Unescapes any Java literals found in theString
to aWriter
.Methods inherited from class java.io.LineNumberReader
getLineNumber, mark, read, read, readLine, reset, setLineNumber, skip
Methods inherited from class java.io.BufferedReader
close, lines, markSupported, ready
Methods inherited from class java.io.Reader
nullReader, read, read, transferTo
-
Constructor Details
-
PropertiesReader
Constructor.- Parameters:
reader
- A Reader.
-
PropertiesReader
Creates a new instance ofPropertiesReader
and 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 after
was 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 after
was 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 '\,').String
to aWriter
.- Parameters:
str
- theString
to 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
false
if anull
array is passed in.- Parameters:
array
- the array to search throughobjectToFind
- the object to find- Returns:
true
if 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
- theString
to unescape, may be null- Returns:
- a new unescaped
String
,null
if null string input
-
unescapeJava
Unescapes any Java literals found in the
String
to aWriter
.For example, it will turn a sequence of
'\'
and'n'
into a newline character, unless the'\'
is preceded by another'\'
.A
null
string input has no effect.- Parameters:
out
- theWriter
used to output unescaped charactersstr
- theString
to unescape, may be null- Throws:
IllegalArgumentException
- if the Writer isnull
IOException
- if error occurs on underlying Writer
-