Chaining is the action of wrapping an existing stream by another stream that is easier to read or write from. It is useful because streams exist to service specific types of data and depending on the data you want to read or write there is a stream that makes it easier for you.
A7:
The java.io.StreamTokenizer class tokenizes input, using a delimiter that you specify. This enables you to read data in a way specific to the nature of your data; e.g. you could read a document word by word or a comma-separated value (CSV) file token-by-token without reading the commas.