public class CharArrayReader
extends java.io.Reader
The second modification is that since this class is used internally by FastPageParser in a single thread, we don't need any locking or synchronization. Using this class instead of the standard CharArrayReader improves FastPageParser performance by 15-20%.
Modifier and Type | Field and Description |
---|---|
protected char[] |
buf
The character buffer.
|
protected int |
count
The index of the end of this buffer.
|
protected int |
markedPos
The position of mark in buffer.
|
protected int |
pos
The current buffer position.
|
Constructor and Description |
---|
CharArrayReader(char[] buf)
Create an CharArrayReader from the specified array of chars.
|
CharArrayReader(char[] buf,
int offset,
int length)
Create an CharArrayReader from the specified array of chars.
|
Modifier and Type | Method and Description |
---|---|
void |
close()
Close the stream.
|
void |
mark(int readAheadLimit)
Mark the present position in the stream.
|
boolean |
markSupported()
Tell whether this stream supports the mark() operation, which it does.
|
int |
read()
Read a single character.
|
int |
read(char[] b,
int off,
int len)
Read characters into a portion of an array.
|
boolean |
ready()
Tell whether this stream is ready to be read.
|
void |
reset()
Reset the stream to the most recent mark, or to the beginning if it has
never been marked.
|
long |
skip(long n)
Skip characters.
|
protected char[] buf
protected int pos
protected int markedPos
protected int count
public CharArrayReader(char[] buf)
buf
- Input buffer (not copied)public CharArrayReader(char[] buf, int offset, int length)
buf
- Input buffer (not copied)offset
- Offset of the first char to readlength
- Number of chars to readpublic int read() throws java.io.IOException
read
in class java.io.Reader
java.io.IOException
- If an I/O error occurspublic int read(char[] b, int off, int len) throws java.io.IOException
read
in class java.io.Reader
b
- Destination bufferoff
- Offset at which to start storing characterslen
- Maximum number of characters to readjava.io.IOException
- If an I/O error occurspublic long skip(long n) throws java.io.IOException
skip
in class java.io.Reader
n
- The number of characters to skipjava.io.IOException
- If an I/O error occurspublic boolean ready() throws java.io.IOException
ready
in class java.io.Reader
java.io.IOException
- If an I/O error occurspublic boolean markSupported()
markSupported
in class java.io.Reader
public void mark(int readAheadLimit) throws java.io.IOException
mark
in class java.io.Reader
readAheadLimit
- Limit on the number of characters that may be
read while still preserving the mark. Because
the stream's input comes from a character array,
there is no actual limit; hence this argument is
ignored.java.io.IOException
- If an I/O error occurspublic void reset() throws java.io.IOException
reset
in class java.io.Reader
java.io.IOException
- If an I/O error occurspublic void close()
close
in interface java.io.Closeable
close
in interface java.lang.AutoCloseable
close
in class java.io.Reader