モジュール java.base

パッケージ java.nio

データのコンテナであるバッファについて定義し、その他のNIOパッケージの概要情報を提供します。

NIO APIは、主に次の抽象化要素から構成されます。

  • Buffer」。データのコンテナ。

  • Charset」と、それに対応する「デコーダ」および「エンコーダ
    (byteとUnicode文字との間の変換を行う)。

  • さまざまな種類の「Channel」(入出力操作を実行できる
    エンティティへの接続を表す)。

  • Selector」と「SelectionKey
    (「SelectableChannel」とともに多重化された非ブロック
    入出力
     機能を定義する)。

java.nioパッケージは、NIO API全体で使用するバッファ・クラスを定義します。 文字セットAPIはjava.nio.charsetパッケージで、チャネルAPIとセレクタAPIはjava.nio.channelsパッケージで定義されています。 これらのサブパッケージは、それぞれ固有のサービス・プロバイダ(SPI)サブパッケージを備えています。それらのサブパッケージの内容は、プラットフォームのデフォルト実装を拡張するときや、代替実装を構築するときに使用します。

様々なバッファの説明
バッファ 説明
Buffer 位置、リミット、容量
クリア、フリップ、リワインド、マーク/リセット
  ByteBuffer get/put、圧縮、ビュー、割り当て、ラップ 
    MappedByteBuffer   ファイルにマップされるbyteバッファ
  CharBuffer get/put、圧縮、割り当て、ラップ 
  DoubleBuffer     ' '
  FloatBuffer     ' '
  IntBuffer     ' '
  LongBuffer     ' '
  ShortBuffer     ' '
ByteOrder byte順序の型保証された列挙  

バッファ」は、特定のプリミティブ型のデータを一定の容量だけ格納するコンテナです。 バッファには、こうしたデータとともに、「位置」(次に読み込みまたは書込みを行う要素のインデックス)と「リミット」(読み込みまたは書込みを行ってはならない最初の要素のインデックス)が格納されます。 基底クラスBufferクラスは、これらのプロパティに加えて、クリアフリップ、およびリワインドのメソッド、現在の位置をマークするメソッド、前のマーク位置に戻るメソッドも定義します。

非ブール型のプリミティブ型を対象とするバッファ・クラスもあります。 各クラスは、バッファでのデータの入出力を行うgetおよびputメソッド、バッファの圧縮複製、およびスライス用のメソッド、新しいバッファを割り当てる staticメソッド、既存の配列をバッファにラップするstaticメソッドからなるファミリを定義します。

byteバッファには、入出力操作のソースやターゲットとして使用できるという特徴があります。 これらは、その他のバッファ・クラスにはない機能をいくつかサポートしています。

  • byteバッファは、「ダイレクト」バッファとして割り当てることができます。Java仮想マシンは、ダイレクトbyteバッファに対してできるだけネイティブの入出力操作を行います。

  • byteバッファは、ファイルの1つの領域をメモリーに直接マップすることで作成できます。この場合、MappedByteBufferクラスで定義されているいくつかのファイル関連操作を追加で実行できます。

  • バイトバッファは、ビッグ・エンディアンまたはリトル・エンディアンの「バイト・オーダー」のいずれかの非ブール型プリミティブ型のバイナリ・データの異種または同種のシーケンスとしてコンテンツへのアクセスを提供します。

ほかで指定がない場合、null引数をこのパッケージの任意のクラスまたはインタフェースのメソッドまたはコンストラクタへ渡すと、NullPointerExceptionがスローされます。

導入されたバージョン:
1.4