What does this mean?
Well, if you are reading really looooooong strings from a file, you must use
BufferedReader.
How long?
Well 8K is 8000 bytes. Unicode requires 2 bytes per character so...
4000 character strings.
Because of this possibility, Scanner can be a little bit slower.
What does this mean?
A BufferedReader can be shared between multiple threads while a Scanner cannot.
Because of this possibility, BufferedReader is a little bit slower in a single thread environment.