Questions about java IO streams?

when getting console input through the IO input stream, it is found that most of them are written like this:

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

what I want to ask is whether this paragraph can be written in the following form:

BufferedReader br = new BufferedReader(new Reader(System.in));

Why is it necessary to convert console input to a character stream through a byte stream? Can"t you read it directly with a character stream and convert it to an advanced character stream?

Jun.03,2021

BufferedReader br = new BufferedReader (new InputStreamReader (System.in));

System.in is a byte stream, bufferedReader is a character stream, and InputStreamReader is used to convert the System.in byte stream into a character stream.

BufferedReader br = new BufferedReader (new Reader (System.in));
Reader is an abstract class that cannot be directly new, so you need to use the Reader implementation class (subclass), while InputStreamReader is the Reader implementation class, and the function is to convert the byte stream into a character stream.
Menu