the file channel to wrap
the size of the internal buffer to use. Defaults to 8MB.
the codec to use. Must be one of UTF-8 or ISO-8859-1.
java.lang.IllegalArgumentException
if bufferSize
is less than 4, or codec
is not
UTF-8 or ISO-8859-1
(Changed in version 2.8.0) collect
has changed. The previous behavior can be reproduced with toSeq
.
Fills inBuffer from the input file.
Fills inBuffer from the input file. Sets inputRemaining
as appropriate.
true if there are more characters to read in the buffer
Returns an iterator over the remaining lines in this SeekableSource.
Returns an iterator over the remaining lines in this SeekableSource. Note that any reads done on this iterator will be reflected in the main SeekableSource!
This acts in the same way as java.io.BufferedReader or scala.io.Source: Single newlines or single carriage returns are treated as an end-of-line, as are carriage returns followed immediately by newlines.
Returns true if the source has more input, populating the input buffer if need be.
Returns true if the source has more input, populating the input buffer if need be.
Reads and returns a single character from a the file.
Reads and returns a single character from a the file.
the next character in the buffer, decoded from ISO-8859-1
the next character in the buffer, decoded from UTF-8
the current position in the file
Positions this source at the given byte offset in the input file.
Positions this source at the given byte offset in the input file. Note that this will allow you to position past the end of the file, in which case no input will be read.
True if we're decoding as UTF-8; false if we're decoding as ISO-8859-1.
A class that provides seekability to an interface similar to scala.io.Source. This is required because scala.io.Source only provides character offsets, while FileChannel (and other seekable Java interfaces) take byte offsets for seeking. The only limitation is that the file must be either UTF-8 or ISO-8859-1 encoded.
This also has a
getLines()
method to iterate over lines. Any reads done on this iterator are reflected in the main Source, and reads on the Source are reflected in theIterator[String]
. The iterator returned bygetLines()
will create another buffer ofbufferSize
bytes, so bear this in mind when estimating memory usage.java.lang.IllegalArgumentException
ifbufferSize
is less than 4, orcodec
is not UTF-8 or ISO-8859-1