public class UTF8ValidationFilter extends BufferedInputStream
UTF8ValidationFilter
class is used to check the illegal UTF-8 byte sequence to replace with the replacement character U+FFFD or raise an exception.
The validation occurs transparently for the users. The output has the same contents as the input if an invalid UTF-8 sequence is not found. If an invalid UTF-8 sequence is found and UTF8ValidationFilter.ValidationBehavior.REPLACE
is specified as the conversion behavior, the output will include U+FFFD, or 0xef, 0xbf, 0xbd in UTF-8 encoding where the problem occurs. By default, the illegal UTF-8 sequence is reported by the exception UTFDataFormatException
.
Modifier and Type | Class and Description |
---|---|
static class |
UTF8ValidationFilter.ValidationBehavior
The
ValidationBehavior class is the class used to determine the behavior in case the conversion fails. |
in
Constructor and Description |
---|
UTF8ValidationFilter(InputStream in)
Constructs the object with the
InputStream object. |
UTF8ValidationFilter(InputStream in, int size)
Constructs the object with the
InputStream object with the buffer size. |
UTF8ValidationFilter(InputStream in, int size, UTF8ValidationFilter.ValidationBehavior action)
Constructs the object with the
InputStream object with the buffer size and the validation behavior. |
Modifier and Type | Method and Description |
---|---|
int |
read()
Reads one byte.
|
int |
read(byte[] b, int off, int len)
Reads the byte array.
|
available, close, mark, markSupported, reset, skip
read
public UTF8ValidationFilter(InputStream in)
InputStream
object.in
- the InputStream
objectpublic UTF8ValidationFilter(InputStream in, int size)
InputStream
object with the buffer size.in
- the InputStream
objectsize
- the buffer sizepublic UTF8ValidationFilter(InputStream in, int size, UTF8ValidationFilter.ValidationBehavior action)
InputStream
object with the buffer size and the validation behavior.in
- the InputStream
objectsize
- the buffer sizeaction
- specifies the error action to be either REPLACE
or REPORT
public int read() throws UTFDataFormatException, IOException
read
in class BufferedInputStream
UTFDataFormatException
- if any illegal UTF-8 sequence is foundIOException
- if any other I/O error occurspublic int read(byte[] b, int off, int len) throws UTFDataFormatException, IOException
read
in class BufferedInputStream
b
- bufferoff
- offsetlen
- lengthUTFDataFormatException
- if any illegal UTF-8 sequence is foundIOException
- if any other I/O error occurs