BufferedReader vs Scanner

Oi pessoal, sou novo por aqui e estou com uma dúvida que me parece até bem simples.

Existe alguma vantagem da classe BufferedReader sobre a classe Scanner quando utilizadas para ler arquivos (ou vice versa)?

Resumidamente, a diferença é: o Reader simplesmente lê o arquivo e te dá o conteúdo, caracter por caracter; Já o Scanner é uma ferramenta mais complexa capaz de “interpretar” o conteúdo, separando por delimitadores e convertendo para outros tipos (numérico, por exemplo).

Então a resposta para quando usar um ou outro é: depende do que você precisa. Se você quer ler o arquivo inteiro e guarda-lo na memória ou outro local, use o Reader, mas se quer processar os dados do arquivo enquanto lê provavelmente o Scanner será a melhor escolha.

Scanner:
Mais simples de usar
Permite vários tipos de sepadores (além da quebra de linha)

BufferedReader:
Mais rápida
Pode ser associada a vários tipos de readers

Use o segundo somente em casos onde vc tem muitos arquivos ou arquivos muito grande para ler. Na absurda maioria das vezes, o scanner será o mais adequado. Até porque, se vc realmente precisar de velocidade, provavelemente você vai preferir o FileChannel ao invés do BufferedReader.

O que é e como trabalha o FileChannel?

http://download.oracle.com/javase/1.4.2/docs/api/java/nio/channels/FileChannel.html
http://www.guj.com.br/articles/118
http://www.java2s.com/Tutorial/Java/0180__File/0420__FileChannel.htm

Obrigado a todos,

Após ver os materiais, escolhi o BufferedReader. Caso eu esteja equivocado, por favor me respondam.