Заметил во многих книгах используется: System.in.read() - это получить что-то с клавиатуры.
Почему там допустим не используется класс Scanner? Потому что System.in.read() это быстрее, нежели чем создавать экземпляр класса Scanner и далее создавать вот такую конструкцию:
Scanner scanner = new Scanner(System.in);
String name = scanner.nextLine();
или же
Scanner scanner = new Scanner(System.in);
int x = scanner.nextInt();
Поискал на Stackoverflow и не нашел отличия System.in.read и класса Scanner.
Разница есть, и притом, существенная. System.in.read() может считать только 1 символ в виде char.
В то же время, Scanner - это универсальная штука, позволяющая считывать в том формате, что надо.
Если требуется считать по символам, то не следует заморачиваться, а использовать System.in.read(). В остальных случаях - это, в частности и файлы, используем Scanner.
Потому что искусство подачи учебной информации включает умение рассказывать только о том, что относится к теме, без привлечения дополнительных сущностей. Если тема относится к основам считывания данных из потока ввода, то объяснять это через использование токенизатора - это усложнение и отвлечение.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости