Chapter 12. Input/Output Facilities
In this chapter, we continue our exploration of the Java API by looking at many of the
classes in the java.io and java.nio packages. These packages offer a rich set of tools for basic
I/O and also
provide the framework on which all file and network communication in Java is
built.
Figure 12-1 shows the class hierarchy of these packages.
We start by looking at the stream classes in java.io, which are subclasses of the basic InputStream, OutputStream, Reader, and Writer
classes. Then we’ll examine the File class and
discuss how you can read and write files using classes in java.io. We also take a quick look at the data compression classes
provided in java.util.zip. Finally, we begin our
investigation of the java.nio package. The NIO, or
“new” I/O, package (introduced in Java 1.4) adds significant new functionality for
building high-performance services.
Streams
Most fundamental I/O in Java is based on
streams
. A stream represents a flow of data, or
a channel of communication with (at least conceptually) a
writer at one end and a reader at the
other. When you are working with the java.io
package to perform terminal input and output, reading or writing files, or
communicating through sockets in Java, you are using various types of streams. Later
in this chapter, we look at the NIO package, which introduces a similar concept
called a channel. But for now, let’s summarize the available
types of streams:
InputStreamOutputStreamAbstract classes ...
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