The large number of classes in the Java IO package is overwhelming and annoying. However, if we use Java, we still need to understand those classes. In fact, the classes in Java IO package is not very complex, but we need a good way to learn those. There are two important factors for understanding the classes:
1). Java io class hierarchy diagram
2). Decorator pattern
Class hierarchy diagram for java.io.inputstream
Class hierarchy diagram for java.io.reader
The other two(writer, outputstream) are similar with the above. Those class hierarchy diagrams are from http://www.falkhausen.de, and the site has a lot of diagrams for other packages.
<pre><code> String foo = "bar"; </code></pre>