Class StreamIterator<E>

java.lang.Object
org.apache.commons.io.StreamIterator<E>
Type Parameters:
E - The Stream and Iterator type.
All Implemented Interfaces:
AutoCloseable, Iterator<E>

public final class StreamIterator<E> extends Object implements Iterator<E>, AutoCloseable
Wraps and presents a Stream as a AutoCloseable Iterator resource that automatically closes itself when reaching the end of stream.

Warning

In order to close the stream, the call site MUST either close the stream it allocated OR call this iterator until the end.

Since:
2.15.0
  • Field Details

    • iterator

      private final Iterator<E> iterator
      The given stream's Iterator.
    • stream

      private final Stream<E> stream
      The given stream.
    • closed

      private boolean closed
      Whether close() has been called.
  • Constructor Details

    • StreamIterator

      private StreamIterator(Stream<E> stream)
  • Method Details

    • iterator

      public static <T> StreamIterator<T> iterator(Stream<T> stream)
      Wraps and presents a stream as a closable resource that automatically closes itself when reaching the end of stream.

      Warning

      In order to close the stream, the call site MUST either close the stream it allocated OR call this iterator until the end.

      Type Parameters:
      T - The stream and iterator type.
      Parameters:
      stream - The stream iterate.
      Returns:
      A new iterator.
    • close

      public void close()
      Closes the underlying stream.
      Specified by:
      close in interface AutoCloseable
    • hasNext

      public boolean hasNext()
      Specified by:
      hasNext in interface Iterator<E>
    • next

      public E next()
      Specified by:
      next in interface Iterator<E>