Package com.ibm.icu.impl.data
Class ResourceReader
java.lang.Object
com.ibm.icu.impl.data.ResourceReader
- All Implemented Interfaces:
Closeable
,AutoCloseable
A reader for text resource data in the current package or the package
of a given class object. The
resource data is loaded through the class loader, so it will
typically be a file in the same directory as the *.class files, or
a file within a JAR file in the corresponding subdirectory. The
file must be a text file in one of the supported encodings; when the
resource is opened by constructing a
ResourceReader
object the encoding is specified.
2015-sep-03 TODO: Only used in com.ibm.icu.dev.test.format, move there.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate String
private int
The one-based line number.private BufferedReader
private String
private Class<?>
-
Constructor Summary
ConstructorsConstructorDescriptionResourceReader
(InputStream is, String resourceName) Construct a reader object for the input stream associated with the given resource name.ResourceReader
(InputStream is, String resourceName, String encoding) Construct a reader object for the input stream associated with the given resource name.ResourceReader
(Class<?> rootClass, String resourceName) Construct a reader object for the text file of the given name in the given class's package, using the default encoding.ResourceReader
(Class<?> rootClass, String resourceName, String encoding) Construct a reader object for the text file of the given name in the given class's package, using the given encoding.ResourceReader
(String resourceName) Construct a reader object for the text file of the given name in this package, using the default encoding.ResourceReader
(String resourceName, String encoding) Construct a reader object for the text file of the given name in this package, using the given encoding. -
Method Summary
Modifier and TypeMethodDescriptionprivate void
_reset()
Reset to the start by reconstructing the stream and readers.void
close()
Closes the underlying reader and releases any system resources associated with it.Return a string description of the position of the last line returned by readLine() or readLineSkippingComments().int
Return the one-based line number of the last line returned by readLine() or readLineSkippingComments().readLine()
Read and return the next line of the file ornull
if the end of the file has been reached.Read a line, ignoring blank lines and lines that start with '#'.readLineSkippingComments
(boolean trim) Read a line, ignoring blank lines and lines that start with '#'.void
reset()
Reset this reader so that the next call toreadLine()
returns the first line of the file again.
-
Field Details
-
reader
-
resourceName
-
encoding
-
root
-
lineNo
private int lineNoThe one-based line number. Has the special value -1 before the object is initialized. Has the special value 0 after initialization but before the first line is read.
-
-
Constructor Details
-
ResourceReader
Construct a reader object for the text file of the given name in this package, using the given encoding.- Parameters:
resourceName
- the name of the text file located in this package's ".data" subpackage.encoding
- the encoding of the text file; if unsupported an exception is thrown- Throws:
UnsupportedEncodingException
- ifencoding
is not supported by the JDK.
-
ResourceReader
Construct a reader object for the text file of the given name in this package, using the default encoding.- Parameters:
resourceName
- the name of the text file located in this package's ".data" subpackage.
-
ResourceReader
public ResourceReader(Class<?> rootClass, String resourceName, String encoding) throws UnsupportedEncodingException Construct a reader object for the text file of the given name in the given class's package, using the given encoding.- Parameters:
resourceName
- the name of the text file located in the given class's package.encoding
- the encoding of the text file; if unsupported an exception is thrown- Throws:
UnsupportedEncodingException
- ifencoding
is not supported by the JDK.
-
ResourceReader
Construct a reader object for the input stream associated with the given resource name.- Parameters:
is
- the input stream of the resourceresourceName
- the name of the resource
-
ResourceReader
Construct a reader object for the input stream associated with the given resource name.- Parameters:
is
- the input stream of the resourceresourceName
- the name of the resource
-
ResourceReader
Construct a reader object for the text file of the given name in the given class's package, using the default encoding.- Parameters:
resourceName
- the name of the text file located in the given class's package.
-
-
Method Details
-
readLine
Read and return the next line of the file ornull
if the end of the file has been reached.- Throws:
IOException
-
readLineSkippingComments
Read a line, ignoring blank lines and lines that start with '#'.- Parameters:
trim
- if true then trim leading Pattern_White_Space.- Throws:
IOException
-
readLineSkippingComments
Read a line, ignoring blank lines and lines that start with '#'. Do not trim leading Pattern_White_Space.- Throws:
IOException
-
getLineNumber
public int getLineNumber()Return the one-based line number of the last line returned by readLine() or readLineSkippingComments(). Should only be called after a call to one of these methods; otherwise the return value is undefined. -
describePosition
Return a string description of the position of the last line returned by readLine() or readLineSkippingComments(). -
reset
public void reset()Reset this reader so that the next call toreadLine()
returns the first line of the file again. This is a somewhat expensive call, however, callingreset()
after calling it the first time does nothing ifreadLine()
has not been called in between. -
_reset
Reset to the start by reconstructing the stream and readers. We could also use mark() and reset() on the stream or reader, but that would cause them to keep the stream data around in memory. We don't want that because some of the resource files are large, e.g., 400k.- Throws:
UnsupportedEncodingException
-
close
Closes the underlying reader and releases any system resources associated with it. If the stream is already closed then invoking this method has no effect.- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Throws:
IOException
-