BufferedReader and BufferedWriter
BufferedReader and BufferedWriter are IO streams that are much faster than Scanner, or System.out, but have limited functionality.
Example Implementations:
//This instance of BufferedReader wraps FileReader and reads from a file.
BufferedReader reader = new BufferedReader(new FileReader(new File("filename.txt")));
//This instance of BufferedReader wraps InputStreamReader and reads from System.in.
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
//This instance of BufferedWriter wraps OutputStreamWriter and writes to System.out.
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out));
When using BufferedWriter, remember to flush the output buffer in order to actually output. Nothing will "appear on your screen" until the output buffer is flushed.