public final class UTF8StreamReader extends java.io.Reader implements Reusable
This class represents a UTF-8 stream reader.
This reader supports surrogate char pairs (representing
characters in the range [U+10000 .. U+10FFFF]). It can also be used
to read characters unicodes (31 bits) directly
(ref. read()).
Each invocation of one of the read() methods may cause one
or more bytes to be read from the underlying byte-input stream.
To enable the efficient conversion of bytes to characters, more bytes may
be read ahead from the underlying stream than are necessary to satisfy
the current read operation.
Instances of this class can be reused for different input streams
and can be part of a higher level component (e.g. parser) in order
to avoid dynamic buffer allocation when the input source changes.
Also wrapping using a java.io.BufferedReader is unnescessary
as instances of this class embed their own data buffers.
Note: This reader is unsynchronized and does not test if the UTF-8 encoding is well-formed (e.g. UTF-8 sequences longer than necessary to encode a character).
UTF8StreamWriter| Constructor and Description |
|---|
UTF8StreamReader()
Creates a UTF-8 reader having a byte buffer of moderate capacity (2048).
|
UTF8StreamReader(int capacity)
Creates a UTF-8 reader having a byte buffer of specified capacity.
|
| Modifier and Type | Method and Description |
|---|---|
void |
close()
Closes and
resets this reader for reuse. |
int |
read()
Reads a single character.
|
void |
read(java.lang.Appendable dest)
Reads characters into the specified appendable.
|
int |
read(char[] cbuf,
int off,
int len)
Reads characters into a portion of an array.
|
boolean |
ready()
Indicates if this stream is ready to be read.
|
void |
reset()
Resets the internal state of this object to its default values.
|
UTF8StreamReader |
setInput(java.io.InputStream inStream)
Sets the input stream to use for reading until this reader is closed.
|
UTF8StreamReader |
setInputStream(java.io.InputStream inStream)
Deprecated.
Replaced by
setInput(InputStream) |
public UTF8StreamReader()
public UTF8StreamReader(int capacity)
capacity - the capacity of the byte buffer.public UTF8StreamReader setInput(java.io.InputStream inStream)
Reader reader = new UTF8StreamReader().setInput(inStream);
is equivalent but reads twice as fast as
Reader reader = new java.io.InputStreamReader(inStream, "UTF-8");
public boolean ready()
throws java.io.IOException
ready in class java.io.Readertrue if the next read() is guaranteed not to block
for input; false otherwise.java.io.IOException - if an I/O error occurs.public void close()
throws java.io.IOException
resets this reader for reuse.close in interface java.io.Closeableclose in interface java.lang.AutoCloseableclose in class java.io.Readerjava.io.IOException - if an I/O error occurs.public int read()
throws java.io.IOException
read in class java.io.Readerjava.io.IOException - if an I/O error occurs.public int read(char[] cbuf,
int off,
int len)
throws java.io.IOException
Note: Characters between U+10000 and U+10FFFF are represented
by surrogate pairs (two char).
read in class java.io.Readercbuf - the destination buffer.off - the offset at which to start storing characters.len - the maximum number of characters to readjava.io.IOException - if an I/O error occurs.public void read(java.lang.Appendable dest)
throws java.io.IOException
dest - the destination buffer.java.io.IOException - if an I/O error occurs.public void reset()
Reusable@Deprecated public UTF8StreamReader setInputStream(java.io.InputStream inStream)
setInput(InputStream)Copyright © 2005 - 2007 Javolution.