Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.commons.io
Class LineIterator

    java.lang.Object
      org.apache.commons.io.LineIterator

All Implemented Interfaces:
  Iterator<String>

    public class LineIterator

extends Object
implements Iterator<String>

An Iterator over the lines in a `Reader`.

`LineIterator` holds a reference to an open `Reader`. When you have finished with the iterator you should close the reader to free internal resources. This can be done by closing the reader directly, or by calling the `close()` or `closeQuietly(LineIterator)` method on the iterator.

The recommended usage pattern is:

     LineIterator it = FileUtils.lineIterator(file, "UTF-8");
     try {
       while (it.hasNext()) {
         String line = it.nextLine();
         // do something with line
       }
     } finally {
       it.close();
     }

Since:
  Commons IO 1.2
Version:
  $Id: LineIterator.java 1022322 2010-10-13 23:20:42Z ggregory $
Author:
  Niall Pemberton, Stephen Colebourne, Sandy McArthur

Constructor Summary
`LineIterator(Reader reader)` Constructs an iterator of the lines for a `Reader`.

Method Summary
`void` | `close()` Closes the underlying `Reader` quietly.
`static void` | `closeQuietly(LineIterator iterator)` Closes the iterator, handling null and ignoring exceptions.
`boolean` | `hasNext()` Indicates whether the `Reader` has more lines.
`protected boolean` | `isValidLine(String line)` Overridable method to validate each line that is returned.
`String` | `next()` Returns the next line in the wrapped `Reader`.
`String` | `nextLine()` Returns the next line in the wrapped `Reader`.
`void` | `remove()` Unsupported.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### LineIterator

    public LineIterator(Reader reader)
                 throws IllegalArgumentException

  Constructs an iterator of the lines for a `Reader`.

  Parameters:
    `reader` - the `Reader` to read from, not null
  Throws:
    `IllegalArgumentException` - if the reader is null

Method Detail

### hasNext

    public boolean hasNext()

  Indicates whether the `Reader` has more lines. If there is an `IOException` then `close()` will be called on this instance.

  Specified by:
    `hasNext` in interface `Iterator<String>`
  Returns:
    `true` if the Reader has more lines
  Throws:
    `IllegalStateException` - if an IO exception occurs

### isValidLine

    protected boolean isValidLine(String line)

  Overridable method to validate each line that is returned.

  Parameters:
    `line` - the line that is to be validated
  Returns:
    true if valid, false to remove from the iterator

### next

    public String next()

  Returns the next line in the wrapped `Reader`.

  Specified by:
    `next` in interface `Iterator<String>`
  Returns:
    the next line from the input
  Throws:
    `NoSuchElementException` - if there is no line to return

### nextLine

    public String nextLine()

  Returns the next line in the wrapped `Reader`.

  Returns:
    the next line from the input
  Throws:
    `NoSuchElementException` - if there is no line to return

### close

    public void close()

  Closes the underlying `Reader` quietly. This method is useful if you only want to process the first few lines of a larger file. If you do not close the iterator then the `Reader` remains open. This method can safely be called multiple times.

### remove

    public void remove()

  Unsupported.

  Specified by:
    `remove` in interface `Iterator<String>`
  Throws:
    `UnsupportedOperationException` - always

### closeQuietly

    public static void closeQuietly(LineIterator iterator)

  Closes the iterator, handling null and ignoring exceptions.

  Parameters:
    `iterator` - the iterator to close

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2002-2010 The Apache Software Foundation. All Rights Reserved.