Chapter 15. Readers and Writers
A language that supports international text
must separate the reading and writing of raw
bytes from the reading and writing of characters, since in an
international system they are no longer the same thing. Classes that
read characters must be able to parse a variety of character
encodings, not just ASCII, and translate them into the
language’s native character set. Classes that write characters
must be able to translate the language’s native character set
into a variety of formats and write those. In Java this task is
performed by the Reader and
Writer classes.
You’re probably going to experience a little
déjà vu. The
java.io.Writer class is modeled on the
java.io.OutputStream class. The
java.io.Reader class is modeled on the
java.io.InputStream class. The names and
signatures of the members of the Reader and
Writer classes are similar (sometimes identical)
to the names and signatures of the members of the
InputStream and OutputStream
classes. The patterns these classes follow are similar as well.
Filtered input and output streams are chained to other streams in
their constructors. Similarly, filtered readers and writers are
chained to other readers and writers in their constructors.
InputStream and OutputStream
are abstract superclasses that identify common functionality in the
concrete subclasses. Likewise, Reader and
Writer are abstract superclasses that identify common functionality in the concrete subclasses. The difference between readers and ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access