I have seen different methods of creating and reading files (specifically text files) in Java. The PrintWriter method or the Formatter with a Scanner to read the file, using a BufferedWriter with a BufferedReader, etc. They will all read/write text files, but from what I understand they do so in different ways. That's about all I understand, though. When would it be more beneficial to use a buffered writer than, say, PrintWriter, which is much simpler code-wise? Is there a "best" way to handle i/o in general in Java?