|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.io.InputStream
it.unimi.dsi.fastutil.io.MeasurableInputStream
it.unimi.dsi.fastutil.io.FastBufferedInputStream
it.unimi.di.mg4j.document.InputStreamDocumentSequence
public class InputStreamDocumentSequence
A document sequence obtained by breaking an input stream at a specified separator.
This document sequences blindly passes to the indexer sequences of characters read in a specified encoding and separated by a specified byte.
Nested Class Summary |
---|
Nested classes/interfaces inherited from class it.unimi.dsi.fastutil.io.FastBufferedInputStream |
---|
FastBufferedInputStream.LineTerminator |
Field Summary |
---|
Fields inherited from class it.unimi.dsi.fastutil.io.FastBufferedInputStream |
---|
ALL_TERMINATORS, avail, buffer, DEFAULT_BUFFER_SIZE, is, pos, readBytes |
Constructor Summary | |
---|---|
InputStreamDocumentSequence(InputStream inputStream,
int separator,
DocumentFactory factory)
Creates a new document sequence based on a given input stream and separator. |
|
InputStreamDocumentSequence(InputStream inputStream,
int separator,
DocumentFactory factory,
int maxDocs)
Creates a new document sequence based on a given input stream and separator; the sequence will not return more than the given number of documents. |
Method Summary | |
---|---|
int |
available()
Returns one if there is an available byte which is not a separator, zero otherwise. |
void |
close()
Closes this document sequence, releasing all resources. |
DocumentFactory |
factory()
Returns the factory used by this sequence. |
void |
filename(CharSequence filename)
Sets the filename of this document sequence. |
void |
flush()
|
DocumentIterator |
iterator()
Returns an iterator over the sequence of documents. |
void |
mark(int readlimit)
|
boolean |
markSupported()
|
boolean |
noMoreBytes()
|
int |
read()
|
int |
read(byte[] b)
|
int |
read(byte[] b,
int offset,
int length)
|
void |
reset()
Deprecated. |
long |
skip(long skip)
|
Methods inherited from class it.unimi.dsi.fastutil.io.FastBufferedInputStream |
---|
length, noMoreCharacters, position, position, readLine, readLine, readLine, readLine |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public InputStreamDocumentSequence(InputStream inputStream, int separator, DocumentFactory factory, int maxDocs)
inputStream
- the input stream containing all documents.separator
- the separator.factory
- the factory that will be used to create documents.maxDocs
- the maximum number of documents returned.public InputStreamDocumentSequence(InputStream inputStream, int separator, DocumentFactory factory)
inputStream
- the input stream containing all documents.separator
- the separator.factory
- the factory that will be used to create documents.Method Detail |
---|
public DocumentIterator iterator()
DocumentSequence
Warning: this method can be safely called just one time. For instance, implementations based on standard input will usually throw an exception if this method is called twice.
Implementations may decide to override this restriction
(in particular, if they implement DocumentCollection
). Usually,
however, it is not possible to obtain two iterators at the
same time on a collection.
iterator
in interface DocumentSequence
DocumentCollection
public DocumentFactory factory()
DocumentSequence
Every document sequence is based on a document factory that transforms raw bytes into a sequence of characters. The factory contains useful information such as the number of fields.
factory
in interface DocumentSequence
public boolean noMoreBytes() throws IOException
IOException
public int read() throws IOException
read
in class FastBufferedInputStream
IOException
public int read(byte[] b) throws IOException
read
in class InputStream
IOException
public int read(byte[] b, int offset, int length) throws IOException
read
in class FastBufferedInputStream
IOException
public void mark(int readlimit)
mark
in class InputStream
public boolean markSupported()
markSupported
in class InputStream
public int available() throws IOException
This behaviour tries to avoid calls to InputStream.available()
s, which are
unbelievably slow. Stream decoders presently require just to know whether it is
possible to read a character in a nonblocking way or not.
available
in class FastBufferedInputStream
IOException
public long skip(long skip)
skip
in class FastBufferedInputStream
@Deprecated public void reset()
reset
in class FastBufferedInputStream
public void flush()
flush
in class FastBufferedInputStream
public void close() throws IOException
DocumentSequence
You should always call this method after having finished with this document sequence.
Implementations are invited to call this method in a finaliser as a safety net (even better,
implement SafelyCloseable
), but since there
is no guarantee as to when finalisers are invoked, you should not depend on this behaviour.
close
in interface DocumentSequence
close
in interface Closeable
close
in class FastBufferedInputStream
IOException
public void filename(CharSequence filename) throws IOException
DocumentSequence
Several document sequences (or collections) are stored using Java's standard serialisation mechanism; nonetheless, they require access to files that are stored as serialised filenames inside the instance. If all pieces are in the current directory, this works as expected. However, if the sequence was specified using a complete pathname, during deserialisation it will be impossible to recover the associated files. In this case, the class expects that this method is invoked over the newly deserialised instance so that pathnames can be relativised to the given filename. Classes that need this mechanism should not fail upon deserialisation if they do not find some support file, but rather wait for the first access.
In several cases, this method can be a no-op (e.g., for an InputStreamDocumentSequence
or a FileSetDocumentCollection
).
Other implementations, such as SimpleCompressedDocumentCollection
or ZipDocumentCollection
, require
a specific treatment. AbstractDocumentSequence
implements this method as a no-op.
filename
in interface DocumentSequence
filename
- the filename of this document sequence.
IOException
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |