モジュール java.base

パッケージ java.nio

データのコンテナであるバッファについて定義し、その他の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