Why? And what the best way to move iterator items pointer to the first position?
Once you read a stream, you can't re-read it without opening the source again. That's how streams and iterators work.