public class UnicodeReader
extends java.io.Reader
Uses BOM mark to identify the encoding to be used. When BOM is not found, uses given default or system encoding.
Original pseudocode : Thomas Weidenfeller
Implementation tweaked: Aki Nieminen
http://www.unicode.org/unicode/faq/utf_bom.html
BOMs:
00 00 FE FF = UTF-32, big-endian
FF FE 00 00 = UTF-32, little-endian
EF BB BF = UTF-8,
FE FF = UTF-16, big-endian
FF FE = UTF-16, little-endian
| Modifier and Type | Field and Description |
|---|---|
(package private) java.lang.String |
defaultEnc |
(package private) java.io.PushbackInputStream |
internalIn |
(package private) java.io.InputStreamReader |
internalIn2 |
| Constructor and Description |
|---|
UnicodeReader(java.io.InputStream in)
Create Unicode reader.
|
UnicodeReader(java.io.InputStream in,
java.lang.String defaultEnc)
Create Unicode reader.
|
| Modifier and Type | Method and Description |
|---|---|
void |
close() |
java.lang.String |
getDefaultEncoding() |
java.lang.String |
getEncoding()
Get stream encoding or NULL if stream is uninitialized.
|
protected void |
init()
Read-ahead four bytes and check for BOM marks.
|
int |
read(char[] cbuf,
int off,
int len) |
java.io.InputStreamReader internalIn2
java.lang.String defaultEnc
java.io.PushbackInputStream internalIn
public UnicodeReader(java.io.InputStream in)
in - inputstream to be readpublic UnicodeReader(java.io.InputStream in,
java.lang.String defaultEnc)
in - inputstream to be readdefaultEnc - default encoding if stream does not have
BOM marker. Give NULL to use system-level
default.public java.lang.String getDefaultEncoding()
public java.lang.String getEncoding()
protected void init()
throws java.io.IOException
java.io.IOExceptionpublic void close()
throws java.io.IOException
close in interface java.io.Closeableclose in interface java.lang.AutoCloseableclose in class java.io.Readerjava.io.IOExceptionpublic int read(char[] cbuf,
int off,
int len)
throws java.io.IOException
read in class java.io.Readerjava.io.IOException