Continously reads an input stream into an in-memory buffer, until 0 elements could be read, or an error occurs.
Transfers elements from an input stream to an output stream, doing so continuously until the input stream reads 0 elements or an error occurs. The streams are not closed after transfer completes.
A collection of helper functions that augment the basic read and write functions of input and output streams.