Changed methods in IOExtensions to throw EndOfStreamException when the end of the stream is reached, rather than an IOException with a custom message.