9 Java NIO

Java NIO (New Input/Output) APIは、データのコンテナであるバッファと、バッファをサポートするその他の構造およびメカニズムを定義します。

java.nioパッケージには、次のものをサポートするクラスが含まれます:

  • バッファ: 特定のプリミティブ型のデータを一定の容量だけ格納するコンテナです。java.nioパッケージを参照してください。
  • 文字セット: 16ビットUnicode文字のシーケンスとバイトのシーケンス間の名前付きマッピングです。文字セットのサポートには、バイトとUnicode文字間で変換するデコーダおよびエンコーダが含まれます。java.nio.charsetパッケージを参照してください。
  • チャネル: ハードウェア・デバイス、ファイル、ネットワーク・ソケットのほか、個別の入出力操作(読み込み、書き込みなど)を実行できるプログラム・コンポーネントなどのエンティティへのオープン接続を表します。java.nio.channelsパッケージを参照してください。
  • 多重化された非ブロックI/O: 多重化は、1つのチャネルで複数のI/O操作を処理する機能です。これは、選択可能チャネルでサポートされます。選択可能チャネルは、ブロック・モードまたは非ブロック・モードに設定できます。ブロック・モードの場合、チャネル上で呼び出された入出力操作は、前の操作が完了するまでブロックされます。非ブロック・モードの場合、入出力操作はブロックされず、要求されたバイト数より少ないバイト数が転送されます。バイトが一切転送されない場合もあります。SelectableChannelクラスを参照してください。