yes, when wrapping streams (called the decorator pattern, by the way) writing to the outer-most stream (actually a shell) will propagate the write down the chain.
an important thing to note here is that various Stream objects along the chain might have their own buffers so the write wont immediately go down the pipe. good examples of this are buffered output streams and zip output streams.
if you intend to write something to a wrapping stream and then write something directly to one of the streams deeper down the chain the recommended thing to do is call flush() on the outer-most stream to make sure any buffers in the chain will be flushed out - else you risk writing bits out of order.