Package blbutil
Class BlockLineReader
java.lang.Object
blbutil.BlockLineReader
Class BlockLineReader
is a blbutil.FileIt
that reads
blocks of lines from a file. The order of lines in the source file is
preserved by the returned string arrays. The hasNext()
method
always returns true
. After the final block of lines is returned
by the next()
method, the next()
method returns
BlockLineReader.SENTINAL
on all subsequent invocations.
BlockLineReader.SENTINAL
is guaranteed to be the only returned
array that has length 0.
Instances of class BlockLineReader
are thread-safe.
Methods of this class will terminate the Java Virtual Machine with an error message if an I/O Exception is encountered.
-
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
Stops reading data elements and releases any system resources that are held by this object.static BlockLineReader
Constructs and returns a newBlockLineReader
for the specified data.file()
Returns the file from which the data are read, ornull
if the data are read from standard input or if the data source is unknown.boolean
hasNext()
Returns the next element in the iteration.String[]
next()
Returnstrue
if the iteration has more elements, and returnsfalse
otherwise.void
remove()
Theremove
method is not supported by this iterator.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
-
Field Details
-
SENTINAL
The string array returned bynext()
after all blocks of lines have been read.
-
-
Method Details
-
create
Constructs and returns a newBlockLineReader
for the specified data. Theclose()
method of the returned object will invoke theclose()
method on the specifiedFileIt<String>
iterator. The calling thread should not directly invoke any methods of the specifiedFileIt<String>
after it is passed to theBlockLineReader.create()
method.- Parameters:
it
- a file iterator that returns the lines of textblockSize
- the maximum length a string array returned bynext()
nBlocks
- the maximum number of non-empty string arrays that will be buffered- Returns:
- a
BlockLineReader
for the specified data. - Throws:
IllegalArgumentException
- ifblockSize < 1 || nBlocks < 1
NullPointerException
- ifit == null
-
file
Description copied from interface:FileIt
Returns the file from which the data are read, ornull
if the data are read from standard input or if the data source is unknown. -
close
public void close()Description copied from interface:FileIt
Stops reading data elements and releases any system resources that are held by this object. Buffered data elements may remain accessible via thehasNext()
andnext()
methods after invokingclose()
. After invokingclose()
, further invocations ofclose()
have no effect. -
hasNext
public boolean hasNext()Returns the next element in the iteration.- Specified by:
hasNext
in interfaceIterator<String[]>
- Returns:
- the next element in the iteration
- Throws:
NoSuchElementException
- if the iteration has no more elements
-
next
Returnstrue
if the iteration has more elements, and returnsfalse
otherwise. -
remove
public void remove()Theremove
method is not supported by this iterator.- Specified by:
remove
in interfaceIterator<String[]>
- Throws:
UnsupportedOperationException
- if this method is invoked
-