Review Lesson 8 of Beginning Java. Summary: Stream I/O Java uses streams to represent data input and output. Remember "System.out.println"? "out" is a PrintStream that is directed to your screen. Other streams might be directed to files on your hard drive. Keyboard and file input is also accomplished through streams. Java gives you commands to create and delete files, modify their attributes and create and delete directories. The java.io package contains many stream classes to handle your every need. Some are pure binary. Some are pure text. Some conveniently handle Java primitives for you. You can create and read ZIP files from Java. You can store the contents of an object, including all of its instance variables, to a disk file. This is called serializing the object. Later, when you load the object from disk, you can create it exactly as it was in your computer's memory. Only classes that implement the Serializable interface can be serialized. When you serialize a class, you must be very careful of its data members. If any of them are also objects, those objects must be serialized, too. You can use the transient keyword to indicate that a variable should not be serialized with the rest of the class.