In this chapter, we went through the process of writing and reading data files, where we saw the usage of FileWriter and FileReader classes and how to relieve resources that use the close() method. We also saw how to catch an exception and handle it. Then, you learned how to use the BufferedWriter and BufferedReader classes to wrap the FileWriter and FileReader classes, respectively. Finally, we saw one more aspect of I/O: the Serializable class. We analyzed what serialization is and its usage with respect to serializing and deserializing objects.
In the next chapter, you'll learn about basic GUI development.