Streams read and write bytes without changing them at all. You can read an image or sound file or unknown document type and process the raw bytes or write them back out to another stream. Readers read unicode characters which are (usually? always?) two bytes wide. Google for more on unicode and character encoding - it's a big topic. Readers often convert between unicode and ASCII one-byte-wide characters so transparently that I've never bothered to figure out just how they do it.
A good question is never answered. It is not a bolt to be tightened into place but a seed to be planted and to bear more seed toward the hope of greening the landscape of the idea. John Ciardi