java.io.BufferedReader

This is a reader which is backed by a buffer which can read a larger block of characters at once which should increase the efficiency of operations, it additionally allows for marking. It is recommended to wrap these around {@link InputStreamReader} for example due to that class not being efficient due to character conversions.