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
ConstructorDescriptionLineIterator
(Reader reader) Constructs an iterator of the lines for aReader
. -
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
Closes the underlyingReader
.static void
closeQuietly
(LineIterator iterator) Deprecated.As of 2.6 deprecated without replacement.boolean
hasNext()
Indicates whether theReader
has more lines.protected boolean
isValidLine
(String line) Overridable method to validate each line that is returned.next()
Returns the next line in the wrappedReader
.nextLine()
Deprecated.Usenext()
.void
remove()
Unsupported.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.util.Iterator
forEachRemaining
-
Constructor Details
-
LineIterator
Constructs an iterator of the lines for aReader
.- Parameters:
reader
- theReader
to 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 aLineIterator
quietly.- 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 theReader
remains open. This method can safely be called multiple times.- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Throws:
IOException
- if closing the underlyingReader
fails.
-
hasNext
Indicates whether theReader
has more lines. If there is anIOException
thenclose()
will be called on this instance.- Specified by:
hasNext
in interfaceIterator<String>
- Returns:
true
if 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:
next
in 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:
remove
in interfaceIterator<String>
- Throws:
UnsupportedOperationException
- always
-