Why are there two type of I/O in Java, namely byte streams and character (Reader/Writer) streams?

Luigi Viggiano

The Reader and Writer classes were added to JDK 1.1 to support internationalization, since the existing streams at that time didn't properly support the use of multi-byte Unicode characters or character encodings other than ASCII. The Reader and Writer classes make it possible to work with internationalized character streams rather than byte streams.