http://www.developer.com/java/article.php/3901971/A-Categorization-Scheme-for-All-Those-Java-IO-Stream-Classes.htm
The number of I/O stream classes in Java make it difficult for newbies to choose the right stream for a given application scenario. In his JavaBoutique.com article, Gurunath Kalamadi presents a very useful technique for conceptualizing the Java I/O stream classes, which you won't find it in any documentation. He suggests separating the streams into two categories:
A Categorization Scheme for All Those Java I/O Stream Classes
September 2, 2010
Read the full story with examples at JavaBoutique:
Java Programming Basics: I/O Streams