final class StreamIterator<T>
Abstraction for using a Stream as an Iterator. This is useful when
interacting with libraries which do not necessarily know of the Stream abstraction (although
is hides exceptions, so it's not always the best idea to use this over re-writing the library code).
java.lang.RuntimeException - The runtime exception closed is 1 of two types:
If the cause of the StreamException is a RuntimeException, then it will be thrown directly,
otherwise, a RuntimeException wrapping the cause of the Exception will be thrown.