Class EncodedInputStream

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable

    public final class EncodedInputStream
    extends java.io.InputStream
    Create an encoded stream from a Reader. This is an internal class, used to pass readers of characters as streams of bytes. The characters will be represented according to the specified encoding. It is up to the caller to ensure the specified encoding is available, and in general only encodings available as default from Java 1.3 and up should be used. Currently, the encodings 'UTF8' and 'UTF-16BE' are used. Streams are obtained by calling the static methods of this class, for instance createUTF8Stream.
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private EncodedInputStream​(java.io.Reader reader, java.nio.charset.Charset encoding, int charBufferSize, int initialByteBufferSize)
      Create an encoded stream for the specified Reader.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int available()  
      void close()  
      (package private) static EncodedInputStream createUTF16BEStream​(java.io.Reader reader)
      Create a UTF-16BE encoded stream from the given Reader.
      static EncodedInputStream createUTF8Stream​(java.io.Reader reader)
      Create a UTF-8 encoded stream from the given Reader.
      int read()  
      private java.io.ByteArrayInputStream reEncode​(java.io.Reader reader)  
      • Methods inherited from class java.io.InputStream

        mark, markSupported, nullInputStream, read, read, readAllBytes, readNBytes, readNBytes, reset, skip, transferTo
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • UTF_8

        private static final java.nio.charset.Charset UTF_8
      • UTF_16BE

        private static final java.nio.charset.Charset UTF_16BE
      • suspendMarker

        private static final java.io.ByteArrayInputStream suspendMarker
      • reader_

        private java.io.Reader reader_
      • decodedBuffer_

        private final char[] decodedBuffer_
      • encodedStreamWriter_

        private java.io.OutputStreamWriter encodedStreamWriter_
      • encodedInputStream_

        private java.io.ByteArrayInputStream encodedInputStream_
    • Constructor Detail

      • EncodedInputStream

        private EncodedInputStream​(java.io.Reader reader,
                                   java.nio.charset.Charset encoding,
                                   int charBufferSize,
                                   int initialByteBufferSize)
        Create an encoded stream for the specified Reader.
        Parameters:
        reader - the Reader to read characters from
        encoding - the encoding to use in the encoded stream
        charBufferSize - the size of the char buffer. This is the number of characters read at once from the Reader.
        initialByteBufferSize - the initial size of the byte buffer. holding the encoded bytes
    • Method Detail

      • createUTF8Stream

        public static EncodedInputStream createUTF8Stream​(java.io.Reader reader)
        Create a UTF-8 encoded stream from the given Reader.
        Parameters:
        reader - the Reader to read characters from.
        Returns:
        a byte-stream with UTF-8 encoded characters
      • createUTF16BEStream

        static EncodedInputStream createUTF16BEStream​(java.io.Reader reader)
        Create a UTF-16BE encoded stream from the given Reader.
        Parameters:
        reader - the Reader to read characters from.
        Returns:
        a byte-stream with UTF-16BE encoded characters
      • reEncode

        private java.io.ByteArrayInputStream reEncode​(java.io.Reader reader)
                                               throws java.io.IOException
        Throws:
        java.io.IOException
      • available

        public int available()
                      throws java.io.IOException
        Overrides:
        available in class java.io.InputStream
        Throws:
        java.io.IOException
      • close

        public void close()
                   throws java.io.IOException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Overrides:
        close in class java.io.InputStream
        Throws:
        java.io.IOException
      • read

        public int read()
                 throws java.io.IOException
        Specified by:
        read in class java.io.InputStream
        Throws:
        java.io.IOException