Overview | Package | Class | Tree | Deprecated | Index | Help
| Groovy JDK

## java.io
Class Reader

Method Summary
`Object` | `eachLine(Closure closure)` Iterates through the given reader line by line.
`Object` | `eachLine(int firstLine, Closure closure)` Iterates through the given reader line by line.
`void` | `filterLine(Writer writer, Closure closure)` Filter the lines from a reader and write them on the writer, according to a closure which returns true if the line should be included.
`Writable` | `filterLine(Closure closure)` Filter the lines from this Reader, and return a Writable which can be used to stream the filtered lines to a destination.
`String` | `getText()` Read the content of the Reader and return it as a String.
`Iterator` | `iterator()` Creates an iterator which will traverse through the reader a line at a time.
`String` | `readLine()` Read a single, whole line from the given Reader.
`List` | `readLines()` Reads the reader into a list of Strings, with one entry for each line.
`Object` | `splitEachLine(String regex, Closure closure)` Iterates through the given reader line by line, splitting each line using the given regex separator.
`Object` | `splitEachLine(Pattern pattern, Closure closure)` Iterates through the given reader line by line, splitting each line using the given regex separator Pattern.
`void` | `transformChar(Writer writer, Closure closure)` Transforms each character from this reader by passing it to the given closure.
`void` | `transformLine(Writer writer, Closure closure)` Transforms the lines from a reader with a Closure and write them to a writer.
`Object` | `withReader(Closure closure)` Allows this reader to be used within the closure, ensuring that it is closed before this method returns.

Method Detail

### eachLine

    public Object eachLine(Closure closure)

  Iterates through the given reader line by line. Each line is passed to the given 1 or 2 arg closure. If the closure has two arguments, the line count is passed as the second argument. The Reader is closed before this method returns.

Parameters:
  `closure` - a closure (arg 1 is line, optional arg 2 is line number starting at line 1).

Returns:
  the last value returned by the closure

Since:
  1.5.6

See:
  Reader#eachLine.

### eachLine

    public Object eachLine(int firstLine, Closure closure)

  Iterates through the given reader line by line. Each line is passed to the given 1 or 2 arg closure. If the closure has two arguments, the line count is passed as the second argument. The Reader is closed before this method returns.

Parameters:
  `firstLine` - the line number value used for the first line (default is 1, set to 0 to start counting from 0).
  `closure` - a closure which will be passed each line (or for 2 arg closures the line and line count).

Returns:
  the last value returned by the closure

Since:
  1.5.7

### filterLine

    public void filterLine(Writer writer, Closure closure)

  Filter the lines from a reader and write them on the writer, according to a closure which returns true if the line should be included. Both Reader and Writer are closed after the operation.

Parameters:
  `writer` - a writer, closed after the call.
  `closure` - the closure which returns booleans.

Since:
  1.0

### filterLine

    public Writable filterLine(Closure closure)

  Filter the lines from this Reader, and return a Writable which can be used to stream the filtered lines to a destination. The closure should return `true` if the line should be passed to the writer.

Parameters:
  `closure` - a closure used for filtering.

Returns:
  a Writable which will use the closure to filter each line from the reader when the Writable#writeTo(Writer) is called.

Since:
  1.0

### getText

    public String getText()

  Read the content of the Reader and return it as a String. The reader is closed before this method returns.

Returns:
  a String containing the content of the buffered reader

Since:
  1.0

See:
  BufferedReader#getText.

### iterator

    public Iterator iterator()

  Creates an iterator which will traverse through the reader a line at a time.

Returns:
  an Iterator for the Reader

Since:
  1.5.0

See:
  BufferedReader#readLine.

### readLine

    public String readLine()

  Read a single, whole line from the given Reader.

Returns:
  a line

Since:
  1.0

### readLines

    public List readLines()

  Reads the reader into a list of Strings, with one entry for each line. The reader is closed before this method returns.

Returns:
  a List of lines

Since:
  1.0

### splitEachLine

    public Object splitEachLine(String regex, Closure closure)

  Iterates through the given reader line by line, splitting each line using the given regex separator. For each line, the given closure is called with a single parameter being the list of strings computed by splitting the line around matches of the given regular expression. The Reader is closed afterwards.

  Here is an example:

      def s = 'The 3 quick\nbrown 4 fox'
      def result = ''
      new StringReader(s).splitEachLine(/\d/){ parts ->
          result += "${parts[0]}_${parts[1]}|"
      }
      assert result == 'The _ quick|brown _ fox|'

Parameters:
  `regex` - the delimiting regular expression.
  `closure` - a closure.

Returns:
  the last value returned by the closure

Since:
  1.5.5

See:
  String#split.

### splitEachLine

    public Object splitEachLine(Pattern pattern, Closure closure)

  Iterates through the given reader line by line, splitting each line using the given regex separator Pattern. For each line, the given closure is called with a single parameter being the list of strings computed by splitting the line around matches of the given regular expression. The Reader is closed afterwards.

  Here is an example:

      def s = 'The 3 quick\nbrown 4 fox'
      def result = ''
      new StringReader(s).splitEachLine(~/\d/){ parts ->
          result += "${parts[0]}_${parts[1]}|"
      }
      assert result == 'The _ quick|brown _ fox|'

Parameters:
  `pattern` - the regular expression Pattern for the delimiter.
  `closure` - a closure.

Returns:
  the last value returned by the closure

Since:
  1.6.8

See:
  String#split.

### transformChar

    public void transformChar(Writer writer, Closure closure)

  Transforms each character from this reader by passing it to the given closure. The Closure should return each transformed character, which will be passed to the Writer. The reader and writer will be both be closed before this method returns.

Parameters:
  `writer` - a Writer to receive the transformed characters.
  `closure` - a closure that performs the required transformation.

Since:
  1.5.0

### transformLine

    public void transformLine(Writer writer, Closure closure)

  Transforms the lines from a reader with a Closure and write them to a writer. Both Reader and Writer are closed after the operation.

Parameters:
  `writer` - Where transformed lines are written. Writer is closed afterwards..
  `closure` - Single parameter closure that is called to transform each line of text from the reader, before writing it to the writer..

Since:
  1.0

### withReader

    public Object withReader(Closure closure)

  Allows this reader to be used within the closure, ensuring that it is closed before this method returns.

Parameters:
  `closure` - the closure that the writer is passed into.

Returns:
  the value returned by the closure

Since:
  1.5.2

Overview | Package | Class | Tree | Deprecated | Index | Help
| Groovy JDK