Classe Scanner

Qual a função da classe Scanner?

Sei que ela pode ser usada para fazer leitura de arquivo e tokenização, mas gostaria de saber sua aplicabilidade em algum caso real.

E qual a diferença de se usar a classe Scanner para leitura de um arquivo ou usar a BufferedReader?

O vantagem da Scanner é o que você já falou. Ela entende tokens.

Assim, você pode ler facilmente arquivos separados por algum separador, como por exemplo:

1,2,3,4,5,6\n
a,b,c,d,e,f\n
maça,pêra,limão,banana,uva,cereja\n.

Com o scanner, basta montar uma expressão regular para detectar o , e o \n e ele já sai achando cada item dos seus registros.

Você pode usar a classe Scanner para ler dados do console, de maneira bem fácil:

Scanner scan = new Scanner(System.in); int x = scan.nextInt(); //Lê um número inteiro String r = scan.nextLine(); //Lê uma string até o enter.

Por fim, vale dizer que a sintaxe é mais simples e legível.