Package org.codehaus.groovy.control.io

# Interface ReaderSource

All Superinterfaces:
  `HasCleanup`

All Known Implementing Classes:
  `AbstractReaderSource`, `FileReaderSource`, `InputStreamReaderSource`, `StringReaderSource`, `URLReaderSource`

    public interface ReaderSource
    extends HasCleanup

An interface for things that can supply (and potentially resupply) a Reader on a source stream.

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `boolean` | `canReopenSource()` | Returns true if the source can be restarted (ie.
  `void` | `cleanup()` | Cleans up any cached resources used by getLine().
  `java.lang.String` | `getLine​(int lineNumber, Janitor janitor)` | Returns a line from the source, or null, if unavailable.
  `java.io.Reader` | `getReader()` | Returns a new Reader on the underlying source object.
  `java.net.URI` | `getURI()` | Returns a URI for this source.

- ## Method Details

  - ### getReader

    java.io.Reader getReader() throws java.io.IOException
    Returns a new Reader on the underlying source object. Returns null if the source can't be reopened.
    Returns:
      the reader to the resource
    Throws:
      `java.io.IOException` - if there was an error opening for stream

  - ### canReopenSource

    boolean canReopenSource()
    Returns true if the source can be restarted (ie. if getReader() will return non-null on subsequent calls.
    Returns:
      true if the resource can be reopened for reading

  - ### getLine

    java.lang.String getLine​(int lineNumber, Janitor janitor)
    Returns a line from the source, or null, if unavailable. If you supply a Janitor, resources will be cached.
    Parameters:
      `lineNumber` - the number of the line of interest
      `janitor` - helper to clean up afterwards
    Returns:
      the line of interest

  - ### cleanup

    void cleanup()
    Cleans up any cached resources used by getLine().
    Specified by:
      `cleanup` in interface `HasCleanup`

  - ### getURI

    java.net.URI getURI()
    Returns a URI for this source.
    Since:
      2.3.0