Package org.codehaus.groovy.util

# Class CharSequenceReader

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

All Implemented Interfaces:
  `java.io.Closeable`, `java.io.Serializable`, `java.lang.AutoCloseable`, `java.lang.Readable`

    public class CharSequenceReader
    extends java.io.Reader
    implements java.io.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 | Description
  --- | ---
  `CharSequenceReader​(java.lang.CharSequence charSequence)` | Construct a new instance with the specified character sequence.

- ## Method Summary

  Modifier and Type | Method | 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.
  `java.lang.String` | `toString()` | Return a String representation of the underlying character sequence.

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

  `nullReader, read, read, ready, transferTo`

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

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

- ## Constructor Details

  - ### CharSequenceReader

    public CharSequenceReader​(java.lang.CharSequence charSequence)
    Construct a new instance with the specified character sequence.
    Parameters:
      `charSequence` - The character sequence, may be `null`

- ## Method Details

  - ### close

    public void close()
    Close resets the reader back to the start and removes any marked position.
    Specified by:
      `close` in interface `java.lang.AutoCloseable`
    Specified by:
      `close` in interface `java.io.Closeable`
    Specified by:
      `close` in class `java.io.Reader`

  - ### mark

    public void mark​(int readAheadLimit)
    Mark the current position.
    Overrides:
      `mark` in class `java.io.Reader`
    Parameters:
      `readAheadLimit` - ignored

  - ### markSupported

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

  - ### read

    public int read()
    Read a single character.
    Overrides:
      `read` in class `java.io.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 `java.io.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 `java.io.Reader`

  - ### skip

    public long skip​(long n)
    Skip the specified number of characters.
    Overrides:
      `skip` in class `java.io.Reader`
    Parameters:
      `n` - The number of characters to skip
    Returns:
      The actual number of characters skipped

  - ### toString

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