Interface ObjectStream<T>

All Superinterfaces:
AutoCloseable
All Known Subinterfaces:
SequenceStream<S>
All Known Implementing Classes:
AbstractEventStream, AbstractObjectStream, AbstractParserEventStream, AbstractToSentenceSampleStream, ADChunkSampleStream, ADNameSampleStream, ADPOSSampleStream, ADSentenceSampleStream, ADSentenceStream, BioNLP2004NameSampleStream, BratAnnotationStream, BratDocumentStream, BratNameSampleStream, ChunkerEventStream, ChunkSampleSequenceStream, ChunkSampleStream, ChunkSampleStream, CollectionObjectStream, Conll02NameSampleStream, Conll03NameSampleStream, ConlluLemmaSampleStream, ConlluPOSSampleStream, ConlluSentenceSampleStream, ConlluStream, ConlluTokenSampleStream, ConllXPOSSampleStream, ConstitParseSampleStream, CrossValidationPartitioner.TrainingSampleStream, DetokenizeSentenceSampleStream, DirectorySampleStream, DocumentCategorizerEventStream, DocumentSampleStream, DocumentToLineStream, EmptyLinePreprocessorStream, EvalitaNameSampleStream, EventTraceStream, FileEventStream, FileToByteArraySampleStream, FileToStringSampleStream, FilterObjectStream, HashSumEventStream, LanguageDetectorEventStream, LanguageDetectorSampleStream, LeipzigLanguageSampleStream, LemmaSampleEventStream, LemmaSampleSequenceStream, LemmaSampleStream, MascDocumentStream, MascNamedEntitySampleStream, MascPOSSampleStream, MascSentenceSampleStream, MascTokenSampleStream, MosesSentenceSampleStream, MucNameSampleStream, NameFinderCensus90NameStream, NameFinderEventStream, NameSampleCountersStream, NameSampleDataStream, NameSampleSequenceStream, NameSampleTypeFilter, NameToSentenceSampleStream, NameToTokenSampleStream, NKJPSentenceSampleStream, OntoNotesNameSampleStream, OntoNotesParseSampleStream, ParagraphStream, ParserEventStream, ParserEventStream, ParseSampleStream, ParseToPOSSampleStream, PlainTextByLineStream, POSSampleEventStream, POSSampleSequenceStream, PosSampleStream, POSToSentenceSampleStream, POSToTokenSampleStream, RealBasicEventStream, RealValueFileEventStream, SDEventStream, SegmenterObjectStream, SentenceSampleStream, SequenceStreamEventStream, TokenizerStream, TokenSampleStream, TokSpanEventStream, TwentyNewsgroupSampleStream, WhitespaceTokenStream, WordTagSampleStream

public interface ObjectStream<T> extends AutoCloseable
Reads objects from a stream.

Design Decision:
This interface provides a means for iterating over the objects in a stream, it does not implement Iterator or Iterable because:

  • Iterator.next() and Iterator.hasNext() are declared as throwing no checked exceptions. Thus the IOExceptions thrown by read() would have to be wrapped in RuntimeExceptions, and the compiler would be unable to force users of this code to catch such exceptions.
  • Implementing Iterable would mean either silently calling reset() to guarantee that all items were always seen on each iteration, or documenting that the Iterable only iterates over the remaining elements of the ObjectStream. In either case, users not reading the documentation carefully might run into unexpected behavior.
See Also:
  • Method Summary

    Modifier and Type
    Method
    Description
    default void
    Closes the ObjectStream and releases all allocated resources.
    Returns the next ObjectStream object.
    default void
    Repositions the stream at the beginning and the previously seen object sequence will be repeated exactly.
  • Method Details

    • read

      T read() throws IOException
      Returns the next ObjectStream object. Calling this method repeatedly until it returns null will return each object from the underlying source exactly once.
      Returns:
      The next object or null to signal that the stream is exhausted.
      Throws:
      IOException - Thrown if there is an error during reading.
    • reset

      default void reset() throws IOException
      Repositions the stream at the beginning and the previously seen object sequence will be repeated exactly. This method can be used to re-read the stream if multiple passes over the objects are required.

      The implementation of this method is optional.

      Throws:
      IOException - Thrown if there is an error during resetting the stream.
      UnsupportedOperationException - Thrown if the reset() is not supported. By default, this is the case.
    • close

      default void close() throws IOException
      Closes the ObjectStream and releases all allocated resources. After close was called, it's not allowed to call read() or reset().
      Specified by:
      close in interface AutoCloseable
      Throws:
      IOException - Thrown if there is an error during closing the stream.