BufferedReader против Console против Scanner: что выбрать?
Я новичок в Java и хотел бы узнать, какой способ чтения пользовательского ввода в консоли является наилучшим. Насколько я знаю, есть три способа сделать это:
Console console = System.console();
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
Scanner reader = new Scanner(System.in);
Какой из этих методов мне выбрать? Почему именно его, а не другие?
1 ответ(ов)
Класс Console
реализован платформонезависимым образом для обработки консольного ввода на разных операционных системах. Все ОС имеют консоль или оболочку, но их реализации могут значительно различаться. Поэтому класс Console
предоставляет вам платформонезависимый класс времени выполнения в Java для доступа к таким вещам, как ввод пароля и т. д.
С другой стороны, Scanner
используется для разбора токенов из содержимого потока, тогда как BufferedReader
просто читает поток и не выполняет какую-либо специальную обработку или разбор.
Как получить текущую рабочую директорию в Java?
Инициализация ArrayList в одну строчку
Почему нет ConcurrentHashSet, если есть ConcurrentHashMap?
Создание репозитория Spring без сущности
Как сгенерировать уникальный хеш-код для строкового ввода в Android?