Два способа считывать данные от пользователя

Здравствуйте. Начал изучать Java и интересует один вопрос.

Есть два способа считать данные от пользователя:

— Scanner (создать, а потом просвоить нужной переменной один из методов next());

— И вот таким вот кодом:

JavaВыделить код

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

import java.io.;
 
public class Main {
 
    public static void main(String[] args)  {
        String line = null;
 
        try {
            BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
            System.out.print("Enter a your line -> ");
            line = reader.readLine();
            System.out.println("Your line -> " + line);
        }
 
        catch (Exception x)
        {
            x.printStackTrace();
        }
    }
}

То есть взять "символьный буфер чтения" и передать ему новый InputStreamReader, указав стандартный ввод (System.in).

Также через оба способа можно сделать и с файлом то же самое. Стоит вопрос: Какой лучше? Говорят через буферы эффективнее, но сканнер проще.

Речь идет о считывании текста (символов).