This may sound redundant, but BufferedReader is a reader, while Scanner is a scanner.
From the <a href=”http://java.sun.com/javase/6/docs/api/”>documentation</a>:
“java.util.Scanner is a simple text scanner which can parse primitive types and strings <b><i>using regular expressions</i></b>.
<i><b>A Scanner breaks its input into tokens using a delimiter pattern</b></i>, which by default matches whitespace. The resulting tokens may then be converted into values of different types using the various next methods.”
“java.io.BufferedReader <b><i>reads text from a character-input stream, buffering characters</i></b> so as to provide for the efficient reading of characters, arrays, and lines.”
Depending on what you need to accomplish, you might want to use a scanner or a buffered reader.