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 and Description
`CharSequenceReader(java.lang.CharSequence charSequence)` Construct a new instance with the specified character sequence.

### Method Summary

All Methods Instance Methods Concrete Methods
`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

`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(java.lang.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 `java.io.Closeable`
Specified by:
  `close` in interface `java.lang.AutoCloseable`
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