Ответ: никакой.
В Java консольный ввод почти не используется и предлагается для изучения только в учебных целях.
Насчет буфера:
Выглядит это примерно так
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String s = reader.readLine();
Мне этот вариант (с буффером) больше нравится: для ввода из файла разница будет небольшая (для текста):
BufferedReader reader = new BufferedReader(new FileReader("input.txt"));
String s = reader.readLine();
Вот тут обсуждение можно почитать, на тему "Что лучше?"
javatalks.ru/topics/25752