org.apache.commons.io.input

## Class CharSequenceReader

- java.lang.Object
- - java.io.Reader
  - - org.apache.commons.io.input.CharSequenceReader

- All Implemented Interfaces:
    Closeable, Serializable, AutoCloseable, Readable

      public class CharSequenceReader
      extends Reader
      implements Serializable

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

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

  Since:
    1.4
  See Also:
    Serialized Form

- - ### Field Summary

    - ### Fields inherited from class java.io.Reader

      `lock`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `CharSequenceReader(CharSequence charSequence)` Constructs a new instance with the specified character sequence.
    `CharSequenceReader(CharSequence charSequence, int start)` Constructs a new instance with a portion of the specified character sequence.
    `CharSequenceReader(CharSequence charSequence, int start, int end)` Constructs a new instance with a portion of the specified character sequence.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `close()` Close resets the file back to the start and removes any marked position.
    `void` | `mark(int readAheadLimit)` Mark the current position.
    `boolean` | `markSupported()` Mark is supported (returns true).
    `int` | `read()` Read a single character.
    `int` | `read(char[] array, int offset, int length)` Read the specified number of characters into the array.
    `boolean` | `ready()` Tells whether this stream is ready to be read.
    `void` | `reset()` Reset the reader to the last marked position (or the beginning if mark has not been called).
    `long` | `skip(long n)` Skip the specified number of characters.
    `String` | `toString()` Return a String representation of the underlying character sequence.

    - ### Methods inherited from class java.io.Reader

      `read, read`

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

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

- - ### Constructor Detail

    - #### CharSequenceReader

          public CharSequenceReader(CharSequence charSequence)

      Constructs a new instance with the specified character sequence.
      Parameters:
        `charSequence` - The character sequence, may be `null`

    - #### CharSequenceReader

          public CharSequenceReader(CharSequence charSequence,
                                    int start)

      Constructs a new instance with a portion of the specified character sequence.

      The start index is not strictly enforced to be within the bounds of the character sequence. This allows the character sequence to grow or shrink in size without risking any `IndexOutOfBoundsException` to be thrown. Instead, if the character sequence grows smaller than the start index, this instance will act as if all characters have been read.

      Parameters:
        `charSequence` - The character sequence, may be `null`
        `start` - The start index in the character sequence, inclusive
      Throws:
        `IllegalArgumentException` - if the start index is negative
      Since:
        2.7

    - #### CharSequenceReader

          public CharSequenceReader(CharSequence charSequence,
                                    int start,
                                    int end)

      Constructs a new instance with a portion of the specified character sequence.

      The start and end indexes are not strictly enforced to be within the bounds of the character sequence. This allows the character sequence to grow or shrink in size without risking any `IndexOutOfBoundsException` to be thrown. Instead, if the character sequence grows smaller than the start index, this instance will act as if all characters have been read; if the character sequence grows smaller than the end, this instance will use the actual character sequence length.

      Parameters:
        `charSequence` - The character sequence, may be `null`
        `start` - The start index in the character sequence, inclusive
        `end` - The end index in the character sequence, exclusive
      Throws:
        `IllegalArgumentException` - if the start index is negative, or if the end index is smaller than the start index
      Since:
        2.7

  - ### Method Detail

    - #### close

          public void close()

      Close resets the file back to the start and removes any marked position.
      Specified by:
        `close` in interface `Closeable`
      Specified by:
        `close` in interface `AutoCloseable`
      Specified by:
        `close` in class `Reader`

    - #### ready

          public boolean ready()

      Tells whether this stream is ready to be read.
      Overrides:
        `ready` in class `Reader`
      Returns:
        `true` if more characters from the character sequence are available, or `false` otherwise.

    - #### mark

          public void mark(int readAheadLimit)

      Mark the current position.
      Overrides:
        `mark` in class `Reader`
      Parameters:
        `readAheadLimit` - ignored

    - #### markSupported

          public boolean markSupported()

      Mark is supported (returns true).
      Overrides:
        `markSupported` in class `Reader`
      Returns:
        `true`

    - #### read

          public int read()

      Read a single character.
      Overrides:
        `read` in class `Reader`
      Returns:
        the next character from the character sequence or -1 if the end has been reached.

    - #### read

          public int read(char[] array,
                          int offset,
                          int length)

      Read the specified number of characters into the array.
      Specified by:
        `read` in class `Reader`
      Parameters:
        `array` - The array to store the characters in
        `offset` - The starting position in the array to store
        `length` - The maximum number of characters to read
      Returns:
        The number of characters read or -1 if there are no more

    - #### reset

          public void reset()

      Reset the reader to the last marked position (or the beginning if mark has not been called).
      Overrides:
        `reset` in class `Reader`

    - #### skip

          public long skip(long n)

      Skip the specified number of characters.
      Overrides:
        `skip` in class `Reader`
      Parameters:
        `n` - The number of characters to skip
      Returns:
        The actual number of characters skipped

    - #### toString

          public String toString()

      Return a String representation of the underlying character sequence.
      Overrides:
        `toString` in class `Object`
      Returns:
        The contents of the character sequence

Copyright © 2002–2020 The Apache Software Foundation. All rights reserved.