パッケージ java.nio
NIO APIは、主に次の抽象化要素から構成されます。
- Buffer。データのコンテナ。 
- Charsetと、それに対応するデコーダおよびエンコーダ 
 (byteとUnicode文字との間の変換を行う)。
- さまざまな種類のChannel(入出力操作を実行できる 
 エンティティへの接続を表す)。
- セレクタと選択キー 
 (選択可能チャネルとともに多重化された非ブロック
 入出力機能を定義する)。
 java.nioパッケージは、NIO API全体で使用するバッファ・クラスを定義します。 文字セットAPIはjava.nio.charsetパッケージで、チャネルAPIとセレクタAPIはjava.nio.channelsパッケージで定義されています。 これらのサブパッケージは、それぞれ固有のサービス・プロバイダ(SPI)サブパッケージを備えています。それらのサブパッケージの内容は、プラットフォームのデフォルト実装を拡張するときや、代替実装を構築するときに使用します。   
 
| バッファ | 説明 | 
|---|---|
| Buffer | 位置、リミット、容量クリア、フリップ、リワインド、マーク/リセット | 
| ByteBuffer | get/put、圧縮、ビュー、割り当て、ラップ | 
| MappedByteBuffer | ファイルにマップされるbyteバッファ | 
| CharBuffer | get/put、圧縮、割り当て、ラップ | 
| DoubleBuffer | get/put、圧縮、割り当て、ラップ | 
| FloatBuffer | get/put、圧縮、割り当て、ラップ | 
| IntBuffer | get/put、圧縮、割り当て、ラップ | 
| LongBuffer | get/put、圧縮、割り当て、ラップ | 
| ShortBuffer | get/put、圧縮、割り当て、ラップ | 
| ByteOrder | byte順序の型保証された列挙 | 
 バッファは、特定のプリミティブ型のデータを一定の容量だけ格納するコンテナです。 バッファには、こうしたデータとともに、位置(次に読み込みまたは書込みを行う要素のインデックス)とリミット(読み込みまたは書込みを行ってはならない最初の要素のインデックス)が格納されます。 基底クラスBufferクラスは、これらのプロパティに加えて、クリア、フリップ、およびリワインドのメソッド、現在の位置をマークするメソッド、前のマーク位置に戻るメソッドも定義します。 
 
非ブール型のプリミティブ型を対象とするバッファ・クラスもあります。 各クラスは、バッファでのデータの入出力を行うgetおよびputメソッド、バッファの圧縮、複製、およびスライス用のメソッド、新しいバッファを割り当てる staticメソッド、既存の配列をバッファにラップするstaticメソッドからなるファミリを定義します。
byteバッファには、入出力操作のソースやターゲットとして使用できるという特徴があります。 これらは、その他のバッファ・クラスにはない機能をいくつかサポートしています。
- byteバッファは、ダイレクトバッファとして割り当てることができます。Java仮想マシンは、ダイレクトbyteバッファに対してできるだけネイティブの入出力操作を行います。 
- byteバッファは、ファイルの1つの領域をメモリーに直接 - マップすることで作成できます。この場合、- MappedByteBufferクラスで定義されているいくつかのファイル関連操作を追加で実行できます。
- バイト・バッファは、ビッグ・エンディアンまたはリトル・エンディアンの「バイト・オーダー」のいずれかの非ブール型プリミティブ型の「バイナリ・データ」の異種または同種のシーケンスとしてコンテンツへのアクセスを提供します。 
 ほかで指定がない場合、null引数をこのパッケージの任意のクラスまたはインタフェースのメソッドまたはコンストラクタへ渡すと、NullPointerExceptionがスローされます。
- 導入されたバージョン:
- 1.4
- 
クラスのサマリー クラス 説明 Buffer 特定のプリミティブ型データのコンテナです。ByteBuffer byteバッファです。ByteOrder byte順序の型保証された列挙です。CharBuffer charバッファです。DoubleBuffer doubleバッファです。FloatBuffer floatバッファです。IntBuffer intバッファです。LongBuffer longバッファです。MappedByteBuffer ファイルのメモリー・マップ領域を内容とするダイレクトbyteバッファです。ShortBuffer shortバッファです。
- 
例外のサマリー Exception 説明 BufferOverflowException 相対put操作がターゲット・バッファのリミットに達したときにスローされる非チェック例外です。BufferUnderflowException 相対get操作がソース・バッファのリミットに達したときにスローされる非チェック例外です。InvalidMarkException マークが定義されていない状態でバッファをリセットしようとしたときにスローされる、非チェック例外です。ReadOnlyBufferException 読込み専用のバッファ上でputやcompactといった内容変更メソッドが呼び出されるときにスローされる非チェック例外です。