An abstract interface which when implemented provides an interface to seek within an open file/resource synchronously.
Seek sets the offset for the next
offset, interpreted according to
Start means relative
to the start of the file,
Current means relative to the current
End means relative to the end.
Seeking to an offset before the start of the file is an error. Seeking to any positive offset is legal, but the behavior of subsequent I/O operations on the underlying object is implementation-dependent.
It returns the updated offset.