title: Taking Input from the User
body: <p>What is the difference between taking input from <code>Scanner</code> and <code>BufferedReader</code> ?</p>
  
  <p>Here is a <code>BufferedReader</code> example...</p>
  
  <pre><code>BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  System.out.println("Enter characters, 'q' to quit.");
  
  // read characters
  do {
      c = (char) br.read();
      System.out.println(c);
  } while(c != 'q');
  </code></pre>
  
  <p>And here is a <code>Scanner</code> example...</p>
  
  <pre><code>Scanner scan = new Scanner(System.in);
  char mrArray = new char[10];
  // read characters
  for (int i = 0; i &lt; myArray.length; i++) {
      String temp = myScanner.next();
      myArray[i] = temp.charAt(0);
  }
  </code></pre>
  
  <p>Is there any difference between the two cases? Are any of these classes likely to be changed in the future? Should I use <code>BufferedStream</code> in preference to <code>Scanner</code>?</p>