Defines buffers, which are containers for data, and provides an overview of the other NIO packages.

The central abstractions of the NIO APIs are:

The java.nio package defines the buffer classes, which are used throughout the NIO APIs. The charset API is defined in the {@link java.nio.charset} package, and the channel and selector APIs are defined in the {@link java.nio.channels} package. Each of these subpackages has its own service-provider (SPI) subpackage, the contents of which can be used to extend the platform's default implementations or to construct alternative implementations.

Buffers

Description

{@link java.nio.Buffer} Position, limit, and capacity;
clear, flip, rewind, and mark/reset
  {@link java.nio.ByteBuffer} Get/put, compact, views; allocate, wrap
    {@link java.nio.MappedByteBuffer}   A byte buffer mapped to a file
  {@link java.nio.CharBuffer} Get/put, compact; allocate, wrap
  {@link java.nio.DoubleBuffer}     ' '
  {@link java.nio.FloatBuffer}     ' '
  {@link java.nio.IntBuffer}     ' '
  {@link java.nio.LongBuffer}     ' '
  {@link java.nio.ShortBuffer}     ' '
{@link java.nio.ByteOrder} Typesafe enumeration for byte orders

A buffer is a container for a fixed amount of data of a specific primitive type. In addition to its content a buffer has a position, which is the index of the next element to be read or written, and a limit, which is the index of the first element that should not be read or written. The base {@link java.nio.Buffer} class defines these properties as well as methods for clearing, flipping, and rewinding, for marking the current position, and for resetting the position to the previous mark.

There is a buffer class for each non-boolean primitive type. Each class defines a family of get and put methods for moving data out of and in to a buffer, methods for compacting, duplicating, and slicing a buffer, and static methods for allocating a new buffer as well as for wrapping an existing array into a buffer.

Byte buffers are distinguished in that they can be used as the sources and targets of I/O operations. They also support several features not found in the other buffer classes:

Unless otherwise noted, passing a null argument to a constructor or method in any class or interface in this package will cause a {@link java.lang.NullPointerException NullPointerException} to be thrown. @since 1.4 @author Mark Reinhold @author JSR-51 Expert Group