I wonder why there is no seek to a position command.
My whole point, in a way, was about that.
The conclusion is that an InputStream (since it is a stream) is kind of an object where data flow from start to end so you can't "rewind". Just for completeness, you could skip from its current position forward AND eventually set a mark point and reset back to it.
BUT, when you set the mark point, it seems that you have to "contract" a max number of bytes "to remember", past which the contract is no more valid; that means you could rewind to mark as long as you didn't move forward past the limit you set in the contract.
As an extreme case, you could set the mark point to position zero and have the contract equal to the size of your file. In that case you could rewind to the beginning, then skip forward wherever you need. This in theory. If you account for the size of some large file it would be like reading all of it in memory and there's no reason to work this way.
So, to move forth and back on a file you should use RAF (like Manfred showed above).