public final class BomInput extends InputStream
InputStream
that attempts to detect a Byte Order Mark (BOM) in the input
and derive the character encoding that should be used to decode the incoming content.Modifier and Type | Class and Description |
---|---|
static class |
BomInput.BytesProcessedNotification
Internal notification exception used to re-wrap the original
InputStream into a Reader . |
Modifier and Type | Field and Description |
---|---|
static byte[] |
UTF_16BE_BOM |
static byte[] |
UTF_16LE_BOM |
static byte[] |
UTF_32BE_BOM |
static byte[] |
UTF_32LE_BOM |
static byte[] |
UTF_8_BOM |
Constructor and Description |
---|
BomInput(InputStream input)
Wraps an
InputStream and reads the first bytes found on it to attempt to read a BOM. |
Modifier and Type | Method and Description |
---|---|
void |
close() |
Charset |
getCharset()
Returns the detected
Charset determined by the Byte Order Mark (BOM) available in the
input provided in the constructor of this class. |
String |
getEncoding()
Returns the detected encoding name determined by the Byte Order Mark (BOM) available in the
input provided in the constructor of this class.
|
boolean |
hasBytesStored()
Returns a flag indicating whether or not all bytes read from the wrapped input stream have been consumed.
|
int |
read() |
available, mark, markSupported, read, read, reset, skip
public static final byte[] UTF_8_BOM
public static final byte[] UTF_16BE_BOM
public static final byte[] UTF_16LE_BOM
public static final byte[] UTF_32BE_BOM
public static final byte[] UTF_32LE_BOM
public BomInput(InputStream input)
InputStream
and reads the first bytes found on it to attempt to read a BOM.input
- the input whose first bytes should be analyzed.public final int read() throws IOException
read
in class InputStream
IOException
public final boolean hasBytesStored()
BomInput
wrapper class should be used instead.
If there are stored bytes that need to be consumed before the wrapped input stream is consumed again,
this method will return true
.false
if there are no bytes stored and the original input stream can be used directly. If this wrapper
needs to be used to return stored bytes before, then true
will be returned.public final Charset getCharset()
Charset
determined by the Byte Order Mark (BOM) available in the
input provided in the constructor of this class.
If no BOM was detected, this method will return null
.Charset
or null
if a BOM could not be matched.public final String getEncoding()
null
.null
if a BOM could not be matched.public void close() throws IOException
close
in interface Closeable
close
in interface AutoCloseable
close
in class InputStream
IOException
Copyright © 2022 Univocity Software Pty Ltd. All rights reserved.