Class UnicodeSupportingInputStreamReader

java.lang.Object
java.io.Reader
marauroa.common.io.UnicodeSupportingInputStreamReader
All Implemented Interfaces:
Closeable, AutoCloseable, Readable

public class UnicodeSupportingInputStreamReader extends Reader
Generic unicode textreader, which will use BOM mark to identify the encoding to be used. If BOM is not found then use a given default or system encoding.
Since:
2.1
  • Constructor Details

    • UnicodeSupportingInputStreamReader

      public UnicodeSupportingInputStreamReader(InputStream in)
      Creates a new UnicodeSupportingInputStreamReader
      Parameters:
      in - inputstream to be read
    • UnicodeSupportingInputStreamReader

      public UnicodeSupportingInputStreamReader(InputStream in, String defaultEnc)
      Creates a new UnicodeSupportingInputStreamReader
      Parameters:
      in - inputstream to be read
      defaultEnc - default encoding if stream does not have BOM marker. Give NULL to use system-level default.
  • Method Details

    • getDefaultEncoding

      public String getDefaultEncoding()
      returns the default encoding
      Returns:
      default encoding
    • getEncoding

      public String 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

      protected void init() throws IOException
      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

      public void close() throws IOException
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Specified by:
      close in class Reader
      Throws:
      IOException
    • read

      public int read(char[] cbuf, int off, int len) throws IOException
      Specified by:
      read in class Reader
      Throws:
      IOException