Byte streams vs Character streams: Character streams Advantages over Byte streams
Byte streams read bytes that fall under ASCII range and character streams read Unicode characters that include characters of many international languages. Being latest, introduced with JDK 1.1, the character streams are advantageous over byte streams like the inclusion of newLine() method (that is not deprecated) with BufferedReader. BufferedWriter includes a overloaded write() method that can write a whole string or a part of a string; but the writeBytes() method of DataOutputStream is not overloaded and writes a whole line (but not part).
Sometimes, byte streams are more efficient to read binary data like the files containing images and sound.
To bridge or link byte streams with character streams, there comes two classes InputStreamReader and OutputStreamWriter. Many byte streams (not all) have equivalent classes in character streams like FileInputStream equivalent FileReader and FileOutputStream equivalent to FileWriter etc.
Character streams – Reader and Writer
The character streams are capable to read 16-bit characters (byte streams read 8-bit characters). Character streams are capable to translate implicitly 8-bit data to 16-bit data or vice versa. The two super-most classes from which all character streams are derived are Reader and Writer. Following hierarchies can be referred for the list of all character streams.


Hello, I try to learn Java and you said that “The read() method of FileReader reads one byte at a time” but if I look at the Oracle website they say about read() method of FileReader that “Reads a single character.” and about read() method of FileInputStream that “Reads a byte of data”…What exactly do this read() method?
why do we need to establish a connection between byte stream and character stream?
To connect both streams.
See this:
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
Here, System.in is byte stream (all OS streams are byte streams) and BufferedReader is character stream.
Very bad explanation
Pl correct and send, if wrong. I will post.