read doens't automatically rewind, but instead properly returns 0 and io.EOF