public interface ObjectStream<T> extends AutoCloseable
Object
s 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 IOException
s thrown by read()
would
have to be wrapped in RuntimeException
s, and the compiler would be
unable to force users of this code to catch such exceptions.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.ObjectStreamException
Modifier and Type | Method and Description |
---|---|
default void |
close()
Closes the
ObjectStream and releases all allocated
resources. |
T |
read()
Returns the next object.
|
default void |
reset()
Repositions the stream at the beginning and the previously seen object sequence
will be repeated exactly.
|
T read() throws IOException
IOException
- if there is an error during readingdefault void reset() throws IOException, UnsupportedOperationException
IOException
- if there is an error during reseting the streamUnsupportedOperationException
default void close() throws IOException
ObjectStream
and releases all allocated
resources. After close was called its not allowed to call
read or reset.close
in interface AutoCloseable
IOException
- if there is an error during closing the streamCopyright © 2020 The Apache Software Foundation. All rights reserved.