Package org.apache.commons.io
Class LineIterator
java.lang.Object
org.apache.commons.io.LineIterator
- All Implemented Interfaces:
Closeable,AutoCloseable,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, StandardCharsets.UTF_8.name());
try {
while (it.hasNext()) {
String line = it.nextLine();
// do something with line
}
} finally {
it.close();
}
- Since:
- 1.2
-
Constructor Summary
ConstructorsConstructorDescriptionLineIterator(Reader reader) Constructs an iterator of the lines for aReader. -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Closes the underlyingReader.static voidcloseQuietly(LineIterator iterator) Deprecated.As of 2.6 deprecated without replacement.booleanhasNext()Indicates whether theReaderhas more lines.protected booleanisValidLine(String line) Overridable method to validate each line that is returned.next()Returns the next line in the wrappedReader.nextLine()Deprecated.Usenext().voidremove()Unsupported.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface java.util.Iterator
forEachRemaining
-
Constructor Details
-
LineIterator
Constructs an iterator of the lines for aReader.- Parameters:
reader- theReaderto read from, not null- Throws:
NullPointerException- if the reader is null
-
-
Method Details
-
closeQuietly
Deprecated.As of 2.6 deprecated without replacement. Please use the try-with-resources statement or handle suppressed exceptions manually.Closes aLineIteratorquietly.- Parameters:
iterator- The iterator to close, ornull.- See Also:
-
close
Closes the underlyingReader. 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 theReaderremains open. This method can safely be called multiple times.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Throws:
IOException- if closing the underlyingReaderfails.
-
hasNext
Indicates whether theReaderhas more lines. If there is anIOExceptionthenclose()will be called on this instance.- Specified by:
hasNextin interfaceIterator<String>- Returns:
trueif the Reader has more lines- Throws:
IllegalStateException- if an IO exception occurs
-
isValidLine
Overridable method to validate each line that is returned. This implementation always returns true.- Parameters:
line- the line that is to be validated- Returns:
- true if valid, false to remove from the iterator
-
next
Returns the next line in the wrappedReader.- Specified by:
nextin interfaceIterator<String>- Returns:
- the next line from the input
- Throws:
NoSuchElementException- if there is no line to return
-
nextLine
Deprecated.Usenext().Returns the next line in the wrappedReader.- Returns:
- the next line from the input
- Throws:
NoSuchElementException- if there is no line to return
-
remove
Unsupported.- Specified by:
removein interfaceIterator<String>- Throws:
UnsupportedOperationException- always
-