В Java мы можем использовать класс Scanner для получения ввода, но он не так эффективен, как BufferedReader пакета IO.
При инициализации объекта класса Scanner или объекта класса BufferedReader мы используем InputStream "System.in".
Есть System.in хорошо по сравнению с FileDescriptor.in?
Например, если я использую System.in с BufferedReader:
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
И используя FileDescriptor.in:
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(FileDescriptor.in), "ASCII"));
То же самое происходит при печати:
Использование System.out OutputStream:
System.out.println("Hello World!");
Использование FileDescriptor.out с BufferedWriter:
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(FileDescriptor.out),"ASCII"), 512);