org.codehaus.groovy.util

## Class CharSequenceReader

- java.lang.Object
- - java.io.Reader
  - - org.codehaus.groovy.util.CharSequenceReader

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

      public class CharSequenceReader
      extends Reader
      implements Serializable

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

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

  Note: This class is mostly a copy from Commons IO and is intended for internal Groovy usage only. It may be deprecated and removed from Groovy at a faster pace than other classes. If you need this functionality in your Groovy programs, we recommend using the Commons IO equivalent directly.

  See Also:
    Serialized Form

- - ### Field Summary

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

      `lock`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `CharSequenceReader(CharSequence charSequence)` Construct a new instance with the specified character sequence.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `close()` Close resets the reader 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 sepcified number of characters into the array.
    `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, ready`

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

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

- - ### Constructor Detail

    - #### CharSequenceReader

          public CharSequenceReader(CharSequence charSequence)

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

  - ### Method Detail

    - #### close

          public void close()

      Close resets the reader 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`

    - #### 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 sepcified 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