Il BufferedReader è buffered (ovviamente!) mentre l'InputStraemReader no. Sostanzialmente si usa wrappare l'InputStreamReader con il BufferedReader per aumentare utilizzarlo in modo pratico ed efficiente, se non lo fai ti tocca leggere carattere per carattere oppure creare il tuo buffer.
Sostanzialmente se vuoi leggere l'input da tastiera il solo InputStreamReader non è una scelta valida: o usi BufferedReader (passandogli come parametro l'IntputStreamReader), o usi Scanner o usi System.console().