CharSequenceInputStream (Commons IO 2.5)
Date: 2016-12-01

org.apache.commons.io.input

## Class CharSequenceInputStream

- java.lang.Object
- - java.io.InputStream
  - - org.apache.commons.io.input.CharSequenceInputStream

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

      public class CharSequenceInputStream
      extends java.io.InputStream

  `InputStream` implementation that can read from String, StringBuffer, StringBuilder or CharBuffer.

  Note: Supports `mark(int)` and `reset()`.

  Since:
    2.2

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private java.nio.ByteBuffer` | `bbuf`
    `private static int` | `BUFFER_SIZE`
    `private java.nio.CharBuffer` | `cbuf`
    `private java.nio.charset.CharsetEncoder` | `encoder`
    `private int` | `mark_bbuf`
    `private int` | `mark_cbuf`
    `private static int` | `NO_MARK`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `CharSequenceInputStream(java.lang.CharSequence cs, java.nio.charset.Charset charset)` Constructor, calls `CharSequenceInputStream(CharSequence, Charset, int)` with a buffer size of 2048.
    `CharSequenceInputStream(java.lang.CharSequence cs, java.nio.charset.Charset charset, int bufferSize)` Constructor.
    `CharSequenceInputStream(java.lang.CharSequence cs, java.lang.String charset)` Constructor, calls `CharSequenceInputStream(CharSequence, String, int)` with a buffer size of 2048.
    `CharSequenceInputStream(java.lang.CharSequence cs, java.lang.String charset, int bufferSize)` Constructor, calls `CharSequenceInputStream(CharSequence, Charset, int)`.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `available()` Return an estimate of the number of bytes remaining in the byte stream.
    `void` | `close()`
    `private void` | `fillBuffer()` Fills the byte output buffer from the input char buffer.
    `void` | `mark(int readlimit)`
    `boolean` | `markSupported()`
    `int` | `read()`
    `int` | `read(byte[] b)`
    `int` | `read(byte[] b, int off, int len)`
    `void` | `reset()`
    `long` | `skip(long n)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### BUFFER_SIZE

          private static final int BUFFER_SIZE

      See Also:
        Constant Field Values

    - #### NO_MARK

          private static final int NO_MARK

      See Also:
        Constant Field Values

    - #### encoder

          private final java.nio.charset.CharsetEncoder encoder

    - #### cbuf

          private final java.nio.CharBuffer cbuf

    - #### bbuf

          private final java.nio.ByteBuffer bbuf

    - #### mark_cbuf

          private int mark_cbuf

    - #### mark_bbuf

          private int mark_bbuf

  - ### Constructor Detail

    - #### CharSequenceInputStream

          public CharSequenceInputStream(java.lang.CharSequence cs,
                                 java.nio.charset.Charset charset,
                                 int bufferSize)

      Constructor.
      Parameters:
        `cs` - the input character sequence
        `charset` - the character set name to use
        `bufferSize` - the buffer size to use.
      Throws:
        `java.lang.IllegalArgumentException` - if the buffer is not large enough to hold a complete character

    - #### CharSequenceInputStream

          public CharSequenceInputStream(java.lang.CharSequence cs,
                                 java.lang.String charset,
                                 int bufferSize)

      Constructor, calls `CharSequenceInputStream(CharSequence, Charset, int)`.
      Parameters:
        `cs` - the input character sequence
        `charset` - the character set name to use
        `bufferSize` - the buffer size to use.
      Throws:
        `java.lang.IllegalArgumentException` - if the buffer is not large enough to hold a complete character

    - #### CharSequenceInputStream

          public CharSequenceInputStream(java.lang.CharSequence cs,
                                 java.nio.charset.Charset charset)

      Constructor, calls `CharSequenceInputStream(CharSequence, Charset, int)` with a buffer size of 2048.
      Parameters:
        `cs` - the input character sequence
        `charset` - the character set name to use
      Throws:
        `java.lang.IllegalArgumentException` - if the buffer is not large enough to hold a complete character

    - #### CharSequenceInputStream

          public CharSequenceInputStream(java.lang.CharSequence cs,
                                 java.lang.String charset)

      Constructor, calls `CharSequenceInputStream(CharSequence, String, int)` with a buffer size of 2048.
      Parameters:
        `cs` - the input character sequence
        `charset` - the character set name to use
      Throws:
        `java.lang.IllegalArgumentException` - if the buffer is not large enough to hold a complete character

  - ### Method Detail

    - #### fillBuffer

          private void fillBuffer()
                           throws java.nio.charset.CharacterCodingException

      Fills the byte output buffer from the input char buffer.
      Throws:
        `java.nio.charset.CharacterCodingException` - an error encoding data

    - #### read

          public int read(byte[] b,
                 int off,
                 int len)
                   throws java.io.IOException

      Overrides:
        `read` 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`

    - #### read

          public int read(byte[] b)
                   throws java.io.IOException

      Overrides:
        `read` in class `java.io.InputStream`
      Throws:
        `java.io.IOException`

    - #### skip

          public long skip(long n)
                    throws java.io.IOException

      Overrides:
        `skip` in class `java.io.InputStream`
      Throws:
        `java.io.IOException`

    - #### available

          public int available()
                        throws java.io.IOException

      Return an estimate of the number of bytes remaining in the byte stream.
      Overrides:
        `available` in class `java.io.InputStream`
      Returns:
        the count of bytes that can be read without blocking (or returning EOF).
      Throws:
        `java.io.IOException` - if an error occurs (probably not possible)

    - #### close

          public void close()
                     throws java.io.IOException

      Specified by:
        `close` in interface `java.io.Closeable`
      Specified by:
        `close` in interface `java.lang.AutoCloseable`
      Overrides:
        `close` in class `java.io.InputStream`
      Throws:
        `java.io.IOException`

    - #### mark

          public void mark(int readlimit)

      Overrides:
        `mark` in class `java.io.InputStream`
      Parameters:
        `readlimit` - max read limit (ignored)

    - #### reset

          public void reset()
                     throws java.io.IOException

      Overrides:
        `reset` in class `java.io.InputStream`
      Throws:
        `java.io.IOException`

    - #### markSupported

          public boolean markSupported()

      Overrides:
        `markSupported` in class `java.io.InputStream`

Copyright (c) 2002-2016 Apache Software Foundation