org.apache.commons.io
public class LineIterator extends Object implements Iterator
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 {@link #close()} or {@link #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 { LineIterator.closeQuietly(iterator); }
Since: Commons IO 1.2
Version: $Id: LineIterator.java 437567 2006-08-28 06:39:07Z bayard $
Field Summary | |
---|---|
BufferedReader | bufferedReader The reader that is being read. |
String | cachedLine The current line. |
boolean | finished A flag indicating if the iterator has been fully read. |
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.
|
Object | next()
Returns the next line in the wrapped Reader .
|
String | nextLine()
Returns the next line in the wrapped Reader .
|
void | remove()
Unsupported.
|
Reader
.
Parameters: reader the Reader
to read from, not null
Throws: IllegalArgumentException if the reader is null
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.Parameters: iterator the iterator to close
Reader
has more lines.
If there is an IOException
then {@link #close()} will
be called on this instance.
Returns: true
if the Reader has more lines
Throws: IllegalStateException if an IO exception occurs
Parameters: line the line that is to be validated
Returns: true if valid, false to remove from the iterator
Reader
.
Returns: the next line from the input
Throws: NoSuchElementException if there is no line to return
Reader
.
Returns: the next line from the input
Throws: NoSuchElementException if there is no line to return
Throws: UnsupportedOperationException always