credo che la differenza sia chiara leggendo la javadoc
BufferedInputStream
A BufferedInputStream adds functionality to another input stream-namely, the ability to buffer the input and to support the mark and resetmethods. When the BufferedInputStream is created, an internal buffer array is created. As bytes from the stream are read or skipped, the internal buffer is refilled as necessary from the contained input stream, many bytes at a time. The mark operation remembers a point in the input stream and thereset operation causes all the bytes read since the most recent mark operation to be reread before new bytes are taken from the contained input
BufferedReader
Reads text from a character-input stream, buffering characters so as to provide for the efficient reading of characters, arrays, and lines.
fonte:
http://docs.oracle.com/javase/7/docs...redReader.html e
http://docs.oracle.com/javase/7/docs...putStream.html