Name
ByteBuffer
Synopsis
ByteBuffer
holds a sequence of bytes for use in an
I/O operation. ByteBuffer
is an abstract class, so
you cannot instantiate one by calling a constructor. Instead, you
must use allocate( )
,
allocateDirect( )
, or wrap( )
.
allocate( )
returns a
ByteBuffer
with the specified capacity. The
position of this new buffer is zero, and its limit is set to its
capacity. allocateDirect( )
is like
allocate( )
except that it attempts to allocate a
buffer that the underlying operating system can use
“directly.” Such
direct
buffers” may be substantially more efficient for
low-level I/O operations than normal buffers, but may also have
significantly larger allocation costs.
If you have already allocated an array of bytes, you can use the
wrap( )
method to create a
ByteBuffer
that uses the byte array as its
storage. In the one-argument version of wrap( )
you specify only the array; the buffer capacity and limit are set to
the array length, and the position is set to zero. In the other form
of wrap( )
you specify the array, as well as an
offset and length that specify a portion of that array. The capacity
of the resulting ByteBuffer
is again set to the
total array length, but its position is set to the specified offset,
and its limit is set to the offset plus length.
Once you have obtained a ByteBuffer
, you can use
the various get( )
and put( )
methods to read data from it or write data into it. Several versions of these methods exist to read and write single bytes or ...
Get Java in a Nutshell, 5th Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.