public class UTF32Reader extends Reader
Modifier and Type | Field and Description |
---|---|
protected boolean |
_bigEndian |
protected byte[] |
_buffer |
protected int |
_byteCount
Total read byte count; used for error reporting purposes
|
protected int |
_charCount
Total read character count; used for error reporting purposes
|
protected IOContext |
_context |
protected InputStream |
_in |
protected int |
_length |
protected boolean |
_managedBuffers |
protected int |
_ptr |
protected char |
_surrogate
Although input is fine with full Unicode set, Java still uses
16-bit chars, so we may have to split high-order chars into
surrogate pairs.
|
protected char[] |
_tmpBuf |
protected static int |
LAST_VALID_UNICODE_CHAR
JSON actually limits available Unicode range in the high end
to the same as xml (to basically limit UTF-8 max byte sequence
length to 4)
|
protected static char |
NULL_BYTE |
protected static char |
NULL_CHAR |
Constructor and Description |
---|
UTF32Reader(IOContext ctxt,
InputStream in,
byte[] buf,
int ptr,
int len,
boolean isBigEndian) |
Modifier and Type | Method and Description |
---|---|
void |
close() |
void |
freeBuffers()
This method should be called along with (or instead of) normal
close.
|
int |
read()
Although this method is implemented by the base class, AND it should
never be called by main code, let's still implement it bit more
efficiently just in case
|
int |
read(char[] cbuf,
int start,
int len) |
protected void |
reportBounds(char[] cbuf,
int start,
int len) |
protected void |
reportStrangeStream() |
protected final boolean _bigEndian
protected char _surrogate
protected int _charCount
protected int _byteCount
protected final boolean _managedBuffers
protected static final int LAST_VALID_UNICODE_CHAR
protected static final char NULL_CHAR
protected static final char NULL_BYTE
protected final IOContext _context
protected InputStream _in
protected byte[] _buffer
protected int _ptr
protected int _length
protected char[] _tmpBuf
public UTF32Reader(IOContext ctxt, InputStream in, byte[] buf, int ptr, int len, boolean isBigEndian)
public int read(char[] cbuf, int start, int len) throws IOException
read
in class Reader
IOException
public void close() throws IOException
close
in interface Closeable
close
in interface AutoCloseable
close
in class Reader
IOException
public int read() throws IOException
read
in class Reader
IOException
public final void freeBuffers()
protected void reportBounds(char[] cbuf, int start, int len) throws IOException
IOException
protected void reportStrangeStream() throws IOException
IOException