Unfortunately I don't find a really good link at the moment which explains the chaining of
Java I/O classes.
Perhaps this Wikipedia article about the
decorator pattern may enlighten you. It doesn't describe the Java I/O classes at all, but it's effectively the decorator design pattern which is used when wrapping one object with another as in the case with the Java I/O classes. This and related links hopefully may help you to better understand the concept behind this.
Marco