Class FileLinesList
- All Implemented Interfaces:
ObjectCollection<MutableString>
,ObjectIterable<MutableString>
,ObjectList<MutableString>
,Stack<MutableString>
,Serializable
,Comparable<List<? extends MutableString>>
,Iterable<MutableString>
,Collection<MutableString>
,List<MutableString>
,RandomAccess
An instance of this class allows to access the lines of a file as a List
. Contrarily to a
FileLinesMutableStringIterable
, direct access is possible and reasonably
efficient, in particular when accessing nearby lines, and all returned mutable strings are separate, independent instances.
Similarly to FileLinesMutableStringIterable
, instead, AbstractObjectList.iterator()
can be called any number of
times, as it opens an independent input stream at each call. For the same reason, the returned
iterator type (FileLinesList.FileLinesIterator
) is Closeable
, and should
be closed after usage.
Note that toString()
will return a single string containing all file lines separated by
the string associated to the system property line.separator
.
Warning: this class is not synchronised. Separate iterators use separate input
streams, and can be accessed concurrently, but all calls to get(int)
refer to the same
input stream.
Implementation details
Instances of this class perform a full scan of the specified file at construction time, representing the list of pointers to the start of each line using the Elias–Fano representation. The memory occupation per line is thus bounded by 2 + log ℓ bits, where ℓ is the average line length.
- Since:
- 1.1
- Author:
- Sebastiano Vigna
- See Also:
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic final class
An iterator over the lines of aFileLinesList
.Nested classes/interfaces inherited from class it.unimi.dsi.fastutil.objects.AbstractObjectList
AbstractObjectList.ObjectRandomAccessSubList<K extends Object>, AbstractObjectList.ObjectSubList<K extends Object>
-
Constructor Summary
ConstructorDescriptionFileLinesList
(CharSequence filename, String encoding) Creates a file-lines collection for the specified filename with the specified encoding, default buffer size and with all terminators.FileLinesList
(CharSequence filename, String encoding, int bufferSize) Creates a file-lines collection for the specified filename with the specified encoding, buffer size and with all terminators.FileLinesList
(CharSequence filename, String encoding, int bufferSize, EnumSet<FastBufferedInputStream.LineTerminator> terminators) Creates a file-lines collection for the specified filename with the specified encoding, buffer size and terminator set. -
Method Summary
Modifier and TypeMethodDescriptionget
(int index) get
(int index, FastBufferedInputStream fastBufferedInputStream, ByteBuffer byteBuffer, CharBuffer charBuffer, CharsetDecoder decoder) listIterator
(int index) int
size()
toString()
Methods inherited from class it.unimi.dsi.fastutil.objects.AbstractObjectList
add, add, addAll, addAll, addElements, addElements, clear, compareTo, contains, ensureIndex, ensureRestrictedIndex, equals, forEach, getElements, hashCode, indexOf, iterator, lastIndexOf, listIterator, peek, pop, push, remove, removeElements, set, setElements, size, subList, toArray, toArray, top
Methods inherited from class java.util.AbstractCollection
containsAll, isEmpty, remove, removeAll, retainAll
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.util.Collection
parallelStream, removeIf, stream, toArray
Methods inherited from interface java.util.List
containsAll, isEmpty, remove, removeAll, replaceAll, retainAll
Methods inherited from interface it.unimi.dsi.fastutil.objects.ObjectCollection
spliterator
Methods inherited from interface it.unimi.dsi.fastutil.objects.ObjectList
addAll, addAll, setElements, setElements, sort, spliterator, unstableSort
-
Constructor Details
-
FileLinesList
public FileLinesList(CharSequence filename, String encoding, int bufferSize, EnumSet<FastBufferedInputStream.LineTerminator> terminators) throws IOException Creates a file-lines collection for the specified filename with the specified encoding, buffer size and terminator set.- Parameters:
filename
- a filename.encoding
- an encoding.bufferSize
- the buffer size forFastBufferedInputStream
.terminators
- a set of line terminators.- Throws:
IOException
-
FileLinesList
Creates a file-lines collection for the specified filename with the specified encoding, buffer size and with all terminators.- Parameters:
filename
- a filename.encoding
- an encoding.bufferSize
- the buffer size forFastBufferedInputStream
.- Throws:
IOException
-
FileLinesList
Creates a file-lines collection for the specified filename with the specified encoding, default buffer size and with all terminators.- Parameters:
filename
- a filename.encoding
- an encoding.- Throws:
IOException
-
-
Method Details
-
size
public int size()- Specified by:
size
in interfaceCollection<MutableString>
- Specified by:
size
in interfaceList<MutableString>
- Specified by:
size
in classAbstractCollection<MutableString>
-
get
- Specified by:
get
in interfaceList<MutableString>
-
get
public MutableString get(int index, FastBufferedInputStream fastBufferedInputStream, ByteBuffer byteBuffer, CharBuffer charBuffer, CharsetDecoder decoder) -
listIterator
- Specified by:
listIterator
in interfaceList<MutableString>
- Specified by:
listIterator
in interfaceObjectList<MutableString>
- Overrides:
listIterator
in classAbstractObjectList<MutableString>
-
toString
- Overrides:
toString
in classAbstractObjectList<MutableString>
-