changes the seek pointer to a new location relative to the beginning of the stream.
This method changes the seek pointer so subsequent reads and writes can take place at a different
location in the stream object. It is an error to seek before the beginning of the stream.
However, it is not an error to seek past the end of the stream. Seeking past the end of the stream
is useful for subsequent writes, as the stream will at that time be extended to the seek position
immediately before the write is done.