org.apache.jasper.xmlparser
Class UCSReader

Reader for UCS-2 and UCS-4 encodings.
(i.e., encodings from ISO-10646-UCS-(2|4)).

Version:

$Id: UCSReader.java 466606 2006-10-21 23:07:12Z markt $

Author:

Neil Graham, IBM

Field Summary

static int

DEFAULT_BUFFER_SIZE
Default byte buffer size (8192, larger than that of ASCIIReader
since it's reasonable to surmise that the average UCS-4-encoded
file should be 4 times as large as the average ASCII-encoded file).

read

Read characters into a portion of an array. This method will block
until some input is available, an I/O error occurs, or the end of the
stream is reached.

Parameters:

ch - Destination buffer

offset - Offset at which to start storing characters

length - Maximum number of characters to read

Returns:

The number of characters read, or -1 if the end of the
stream has been reached

Throws:

java.io.IOException - If an I/O error occurs

skip

public long skip(long n)
throws java.io.IOException

Skip characters. This method will block until some characters are
available, an I/O error occurs, or the end of the stream is reached.

Parameters:

n - The number of characters to skip

Returns:

The number of characters actually skipped

Throws:

java.io.IOException - If an I/O error occurs

ready

public boolean ready()
throws java.io.IOException

Tell whether this stream is ready to be read.

Returns:

True if the next read() is guaranteed not to block for input,
false otherwise. Note that returning false does not guarantee that the
next read will block.

Throws:

java.io.IOException - If an I/O error occurs

markSupported

public boolean markSupported()

Tell whether this stream supports the mark() operation.

mark

public void mark(int readAheadLimit)
throws java.io.IOException

Mark the present position in the stream. Subsequent calls to reset()
will attempt to reposition the stream to this point. Not all
character-input streams support the mark() operation.

Parameters:

readAheadLimit - Limit on the number of characters that may be
read while still preserving the mark. After
reading this many characters, attempting to
reset the stream may fail.

Throws:

java.io.IOException - If the stream does not support mark(),
or if some other I/O error occurs

reset

public void reset()
throws java.io.IOException

Reset the stream. If the stream has been marked, then attempt to
reposition it at the mark. If the stream has not been marked, then
attempt to reset it in some way appropriate to the particular stream,
for example by repositioning it to its starting point. Not all
character-input streams support the reset() operation, and some support
reset() without supporting mark().

Throws:

java.io.IOException - If the stream has not been marked,
or if the mark has been invalidated,
or if the stream does not support reset(),
or if some other I/O error occurs

close

public void close()
throws java.io.IOException

Close the stream. Once a stream has been closed, further read(),
ready(), mark(), or reset() invocations will throw an IOException.
Closing a previously-closed stream, however, has no effect.