Package marauroa.common.io
Class UnicodeSupportingInputStream
java.lang.Object
java.io.InputStream
marauroa.common.io.UnicodeSupportingInputStream
- All Implemented Interfaces:
Closeable
,AutoCloseable
This inputstream will recognize unicode BOM marks
and will skip bytes if getEncoding() method is called
before any of the read(...) methods.
Usage pattern:
String enc = "ISO-8859-1"; // or NULL to use systemdefault FileInputStream fis = new FileInputStream(file); UnicodeInputStream uin = new UnicodeInputStream(fis, enc); enc = uin.getEncoding(); // check and skip possible BOM bytes InputStreamReader in; if (enc == null) in = new InputStreamReader(uin); else in = new InputStreamReader(uin, enc);
- Since:
- 2.1
-
Constructor Summary
ConstructorDescriptionCreates a new UnicodeSupportingInputStreamUnicodeSupportingInputStream(InputStream in, String defaultEnc)
Creates a new UnicodeSupportingInputStream -
Method Summary
Methods inherited from class java.io.InputStream
available, mark, markSupported, nullInputStream, read, read, readAllBytes, readNBytes, readNBytes, reset, skip, skipNBytes, transferTo
-
Constructor Details
-
UnicodeSupportingInputStream
Creates a new UnicodeSupportingInputStream- Parameters:
in
- inputstream to be read
-
UnicodeSupportingInputStream
Creates a new UnicodeSupportingInputStream- Parameters:
in
- inputstream to be readdefaultEnc
- default encoding if stream does not have BOM marker. Give NULL to use system-level default.
-
-
Method Details
-
getDefaultEncoding
returns the default encoding- Returns:
- default encoding
-
getEncoding
Get stream encoding or NULL if stream is uninitialized. Call init() or read() method to initialize it.- Returns:
- actual encoding used to read this file
-
init
Read-ahead four bytes and check for BOM marks. Extra bytes are unread back to the stream, only BOM bytes are skipped.- Throws:
IOException
- in cases of an I/O error
-
close
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Overrides:
close
in classInputStream
- Throws:
IOException
-
read
- Specified by:
read
in classInputStream
- Throws:
IOException
-