Streams are used for reading and writing data in Java. The Scanner class is used for reading text files by constructing a Scanner from a File object. The PrintStream class is used for writing to text files by specifying the file name and encoding. Exceptions may occur during I/O operations and should be handled using try-catch blocks to prevent program errors.