Using the NIO System
This
section illustrates how to apply the NIO system to a variety of tasks. Before
beginning, it is important to emphasize that with the release of JDK 7, the NIO
subsystem was greatly expanded. As a result, its uses have also been greatly
expanded. As mentioned, the enhanced version is sometimes referred to as NIO.2.
Because the features added by NIO.2 are so substantial, they have changed the
way that much NIO-based code is written and have increased the types of tasks
to which NIO can be applied. Because of its importance, most of the remaining
discussion and examples in this chapter utilize NIO.2 features and, therefore,
require JDK 7, JDK 8, or later. However, at the end of the chapter is a brief
description of pre-JDK 7 code. This will be of aid to those programmers working
in pre-JDK 7 environments or maintaining older code.
In the
past, the primary purpose of NIO was channel-based I/O, and this is still a
very important use. However, you can now use NIO for stream-based I/O and for
performing file-system operations. As a result, the discussion of using NIO is
divided into three parts:
Using NIO for channel-based
I/O
Using NIO for stream-based
I/O
Using NIO for path and file
system operations
Because
the most common I/O device is the disk file, the rest of this chapter uses disk
files in the examples. Because all file channel operations are byte-based, the
type of buffers that we will be using are of type ByteBuffer.
Before
you can open a file for access via the NIO system, you must obtain a Path that describes the file. One way
to do this is to call the Paths.get( )
factory method, which was described earlier. The form of get( ) used in the examples is shown here:
static
Path get(String pathname, String ... parts)
Recall
that the path can be specified in two ways. It can be passed in pieces, with
the first part passed in pathname and
the subsequent elements specified by the parts
varargs
parameter.
Alternatively, the entire path can be specified in pathname and parts is not
used. This is the approach used by the examples.
Related Topics
Privacy Policy, Terms and Conditions, DMCA Policy and Compliant
Copyright © 2018-2023 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.