参照: 説明
| インタフェース | 説明 |
|---|---|
| AsynchronousByteChannel |
バイトの読み取りと書き込みができる非同期チャネルです。
|
| AsynchronousChannel |
非同期入出力操作をサポートするチャネルです。
|
| ByteChannel |
バイトの読み込みと書き込みができるチャネルです。
|
| Channel |
入出力操作に関係するチャネルです。
|
| CompletionHandler<V,A> |
非同期入出力操作の結果を消費するためのハンドラです。
|
| GatheringByteChannel |
バッファーシーケンスからバイトを書き込むことができるチャネルです。
|
| InterruptibleChannel |
非同期のクローズや割り込みが可能なチャネルです。
|
| MulticastChannel |
IP (Internet Protocol) マルチキャストをサポートするネットワークチャネルです。
|
| NetworkChannel |
ネットワークソケットへのチャネルです。
|
| ReadableByteChannel |
バイトを読み取ることができるチャネルです。
|
| ScatteringByteChannel |
バッファーシーケンスにバイトを読み込むことができるチャネルです。
|
| SeekableByteChannel |
現在の位置を保持し、位置の変更を許可するバイトチャネルです。
|
| WritableByteChannel |
バイトを書き込むことができるチャネルです。
|
| クラス | 説明 |
|---|---|
| AsynchronousChannelGroup |
リソースを共有するための非同期チャネルのグループ化です。
|
| AsynchronousFileChannel |
ファイルの読み込み、書き込み、操作用の非同期チャネルです。
|
| AsynchronousServerSocketChannel |
ストリーム型リスニングソケット用の非同期チャネルです。
|
| AsynchronousSocketChannel |
ストリーム型接続ソケット用の非同期チャネルです。
|
| Channels |
チャネルとストリームのためのユーティリティーメソッドです。
|
| DatagramChannel |
データグラム型ソケットの選択可能なチャネルです。
|
| FileChannel |
ファイルの読み込み、書き込み、マッピング、操作用チャネルです。
|
| FileChannel.MapMode |
ファイルマッピングモードの型保証された列挙です。
|
| FileLock |
ファイル領域上のロックを示すトークンです。
|
| MembershipKey |
IP (Internet Protocol) マルチキャストグループのメンバーシップを表すトークンです。
|
| Pipe |
単方向パイプを実装する一組のチャネルです。
|
| Pipe.SinkChannel |
Pipe の書き込み可能な終端を表すチャネルです。 |
| Pipe.SourceChannel |
Pipe の読み取り可能な終端を表すチャネルです。 |
| SelectableChannel |
Selector 経由で多重化できるチャネルです。 |
| SelectionKey |
SelectableChannel が Selector に登録されていることを示すトークンです。 |
| Selector |
SelectableChannel オブジェクトのマルチプレクサです。 |
| ServerSocketChannel |
ストリーム型リスニングソケット用の選択可能なチャネルです。
|
| SocketChannel |
ストリーム型接続ソケット用の選択可能チャネルです。
|
| Exception | 説明 |
|---|---|
| AcceptPendingException |
以前の受け付け操作が完了していないのにチャネル上で受け付け操作を開始しようとした場合にスローされる非チェック例外です。
|
| AlreadyBoundException |
すでにバインド済みのネットワーク指向チャネルのソケットをバインドしようとしたときにスローされる非チェック例外です。
|
| AlreadyConnectedException |
すでに接続済みの
SocketChannel を接続しようとしたときにスローされる非チェック例外です。 |
| AsynchronousCloseException |
別のスレッドがチャネルまたは入出力操作時にブロックされるチャネルの一部をクローズしたときにスレッドが受け取るチェック例外です。
|
| CancelledKeyException |
すでに無効になった選択キーを使用しようとしたときにスローされる非チェック例外です。
|
| ClosedByInterruptException |
スレッドがチャネルでの入出力操作でブロックされているにもかかわらず、別のスレッドから割り込みを受けた場合に受信するチェック例外です。
|
| ClosedChannelException |
クローズしたチャネルに対する入出力操作を行おうとしたとき、または実行しようとした入出力操作に対してそのチャネルがクローズされている場合にスローされるチェック例外です。
|
| ClosedSelectorException |
クローズしたセレクタに対する入出力操作を呼び出そうとしたときにスローされる非チェック例外です。
|
| ConnectionPendingException |
非ブロック接続操作の進行中に
SocketChannel に接続しようとしたときにスローされる非チェック例外です。 |
| FileLockInterruptionException |
ファイルロックの獲得を待機しているスレッドに対して別のスレッドから割り込みがあったときに受け取られるチェック例外です。
|
| IllegalBlockingModeException |
ブロックモードが不正であるのに、チャネル上でブロックモード固有の操作を呼び出したときにスローされる非チェック例外です。
|
| IllegalChannelGroupException |
同じプロバイダによって作成されなかったグループ内のチャネルを開こうとしたときにスローされる非チェック例外です。
|
| IllegalSelectorException |
チャネルの作成元プロバイダ以外が作成したセレクタにチャネルを登録しようとしたときにスローされる非チェック例外です。
|
| InterruptedByTimeoutException |
非同期操作が完了する前にタイムアウト時間が経過したときにスレッドが受け取るチェック例外です。
|
| NoConnectionPendingException | |
| NonReadableChannelException |
最初は読み込みのためにオープンされていなかったチャネルから読み込みを行おうとしたときにスローされる非チェック例外です。
|
| NonWritableChannelException |
最初は書き込みのためにオープンされていなかったチャネルに対して書き込みを行おうとしたときにスローされる非チェック例外です。
|
| NotYetBoundException |
未バインドのサーバーソケットチャネル上で入出力操作を呼び出そうとしたときにスローされる非チェック例外です。
|
| NotYetConnectedException |
未接続のソケットチャネル上で入出力操作を呼び出そうとしたときにスローされる非チェック例外です。
|
| OverlappingFileLockException |
ロックを獲得しようとしたファイル領域が、すでに同じ Java 仮想マシンによってロックされている領域にオーバーラップしている場合、またはその他のスレッドが同じファイルのオーバーラップしている領域をロックしようと待機している場合にスローされる非チェック例外です。
|
| ReadPendingException |
以前の読み取りが完了していないのに非同期ソケットチャネルから読み取ろうとした場合にスローされる非チェック例外です。
|
| ShutdownChannelGroupException |
シャットダウン済みのグループ内でチャネルを構築しようとしたときや、チャネルグループが終了したために入出力操作の終了ハンドラを呼び出せないときにスローされる非チェック例外です。
|
| UnresolvedAddressException |
未解決のソケットアドレスに対してネットワーク操作を呼び出そうとしたときにスローされる非チェック例外です。
|
| UnsupportedAddressTypeException |
サポートされていない型のソケットアドレスにバインドまたは接続しようとしたときにスローされる非チェック例外です。
|
| WritePendingException |
以前の書き込みが完了していないのに非同期ソケットチャネルに書き込もうとした場合にスローされる非チェック例外です。
|
チャネル
説明
Channel入出力操作が行われる場所 ReadableByteChannelバッファーへの読み込みを行う ScatteringByteChannelバッファーシーケンスへの読み込みを行う WritableByteChannelバッファーからの書き出しを行う GatheringByteChannelバッファーシーケンスからの書き込みを行う ByteChannelバッファーへの読み込み、バッファーからの書き込みを行う SeekableByteChannel可変長のバイトシーケンスが含まれているエンティティーに接続された ByteChannelAsynchronousChannel非同期入出力操作をサポートする。 AsynchronousByteChannel非同期でバイトの読み取りと書き込みを行う NetworkChannelネットワークソケットへのチャネル MulticastChannelIP (Internet Protocol) マルチキャストグループに参加できる Channelsチャネルとストリームの相互運用のためのユーティリティーメソッド
チャネルは、ハードウェアデバイス、ファイル、ネットワークソケットのほか、1 つ以上の個別の入出力操作 (読み込み、書き込みなど) を実行できるプログラムコンポーネントなどのエンティティーへのオープン接続を表します。Channel インタフェースに指定されているとおり、チャネルの状態はオープンかクローズのどちらかです。どちらの状態のチャネルも、非同期クローズ可能かつ割り込み可能です。
Channel インタフェースは、いくつかのほかのインタフェースによって拡張されます。
ReadableByteChannel インタフェースは、チャネルからバッファーにバイトを読み取る read メソッドを指定します。同様に、WritableByteChannel インタフェースは、バッファーからチャネルにバイトを書き込む write メソッドを指定します。ByteChannel インタフェースは、これら 2 つのインタフェースを統一したインタフェースであり、バイトの読み込みと書き出しの両方を実行できる一般的なチャネルで使用されます。SeekableByteChannel インタフェースは、チャネルの現在の位置とそのサイズを照会および変更するメソッドで ByteChannel インタフェースを継承したものです。
シングルバッファーではなく複数のバッファーのシーケンスを使用する read メソッドと write メソッドを追加することにより、ScatteringByteChannel インタフェースは ReadableByteChannel インタフェース、GatheringByteChannel インタフェースは WritableByteChannel インタフェースを継承します。
NetworkChannel インタフェースは、チャネルのソケットをバインドして、ソケットのバインド先のアドレスを取得するためのメソッドを指定し、ソケットオプションを取得して設定するためのメソッドを指定します。MulticastChannel インタフェースは、IP (Internet Protocol) マルチキャストグループに参加するためのメソッドを指定します。
Channels ユーティリティークラスは、java.io パッケージのストリームクラスとこのパッケージのチャネルクラスの連携をサポートする static メソッドを定義します。適切なチャネルは、InputStream や OutputStream から構築できます。反対に、InputStream や OutputStream は、単一のチャネルから構築できます。Reader は、指定された文字セットを使って指定された読み込み可能なバイトチャネルのバイトをデコードするように構築できます。反対に、Writer は、指定された文字セットを使って文字をバイトへエンコードし、指定された書き込み可能なバイトチャネルに書き込むように構築できます。
ファイルチャネル
説明
FileChannelファイルの読み込み、書き込み、マッピング、操作 FileLockファイルの (領域の) ロック MappedByteBufferファイル領域にマッピングされるダイレクト byte バッファー
FileChannel クラスは、現在のファイル位置の照会および変更、ファイルの末尾の切り詰めによる特定のサイズへの変更のほか、ファイルに接続されたチャネルからのバイトの読み込み、ファイルに接続されたチャネルへのバイトの書き込みといった一般的な操作をサポートします。このクラスは、ファイル全体またはファイル内の特定の領域のロックを獲得するメソッドを定義します。こうしたメソッドは、FileLock クラスのインスタンスを返します。{@link java.nio.channels.FileChannel} クラスは、ファイルの更新内容を、このファイルが格納されている記憶装置に強制的に書き込むメソッドも定義します。こうしたメソッドにより、ファイルとその他のチャネル間のバイトのやりとりが効率化されます。また、ファイル領域を直接メモリーにマッピングできるようになります。
FileChannel は、その静的な open メソッドの 1 つを呼び出すか、java.io クラスと同じ基礎となるファイルに接続されているファイルチャネルを返すために FileInputStream、FileOutputStream、または RandomAccessFile の getChannel メソッドを呼び出すことで作成されます。
多重化された非ブロック入出力
説明
SelectableChannel多重化可能なチャネル DatagramChannelデータグラム型ソケットへのチャネル Pipe.SinkChannelパイプの書き込み側 Pipe.SourceChannelパイプの読み込み側 ServerSocketChannelストリーム型リスニングソケットへのチャネル SocketChannelストリーム型接続ソケットのチャネル Selector選択可能チャネルのマルチプレクサ SelectionKeyセレクタへのチャネルの
登録を表すトークンPipe単方向パイプを形成する 2 つのチャネル
セレクタ、選択可能チャネル、選択キーによって提供される多重化された非ブロック入出力は、スレッド指向のブロック入出力よりスケーラブルです。
セレクタは選択可能チャネルのマルチプレクサです。選択可能チャネルは、非ブロックモードに分類できる特殊なタイプのチャネルでもあります。多重化入出力操作を実行するには、まず選択可能チャネルを 1 個以上作成して、これを非ブロックモードにして、セレクタに登録します。チャネルを登録すると、一連の入出力操作が指定されます。セレクタは、準備の一環としてこれらの操作をテストし、登録を表す選択キーを返します。
セレクタにチャネルを登録したら、範囲があらかじめ宣言されている 1 個以上の操作の実行が可能になったチャネルを検出するため、選択操作を実行できます。チャネルの準備ができていれば、登録時に返されたキーがセレクタの選択キーセットに追加されます。このキーセットと、このセットに含まれるキーを調べることにより、各チャネルが実行できる操作を判断できます。要求された入出力操作を実行するため、各キーから対応するチャネルを取得できます。
選択キーは、そのチャネルがある操作を実行できる状態になっていることを示します。ただし、これは単なるヒントであって、スレッドがブロックされることなくある操作を実行できることを保証するわけではありません。ヒントの内容が明らかに不正な場合は、これを無視するために、多重化入出力処理を実行するコードを書き込む必要があります。
このパッケージは、java.net パッケージに定義された DatagramSocket、ServerSocket、および Socket クラスに対応する選択可能チャネルクラスを定義します。これらのクラスには、チャネルに関連したソケットをサポートできるように、小規模な変更が加えられています。このパッケージは、単方向パイプを実装する単純なクラスも定義します。新しい選択可能チャネルは常に、対応するクラスの static open メソッドを呼び出すことによって作成されます。チャネルが関連ソケットを必要としている場合は、この操作の副作用としてソケットが作成されます。
セレクタ、選択可能チャネル、選択キーの実装を置き換えるには、java.nio.channels.spi パッケージに定義されている SelectorProvider クラスの代替定義またはインスタンスを「プラグイン」します。ただし、この機能は、すべての開発者を対象とした機能ではありません。これは、非常に高い性能が要求される場合に、オペレーティングシステム固有の入出力多重化メカニズムを活用できるようにする、上級ユーザー向け機能です。
多重化入出力の抽象化を実装するために必要とされる登録および同期処理は、ほとんどの場合、java.nio.channels.spi パッケージの AbstractInterruptibleChannel、AbstractSelectableChannel、AbstractSelectionKey、および AbstractSelector クラスによって実行されます。カスタムセレクタプロバイダを定義する際、直接サブクラス化されるのは AbstractSelector クラスと AbstractSelectionKey クラスだけです。カスタムチャネルクラスは、このパッケージに定義されている適切な SelectableChannel サブクラスを拡張する必要があります。
非同期入出力
説明
AsynchronousFileChannelファイルの読み込み、書き込み、操作用の非同期チャネルです AsynchronousSocketChannelストリーム型接続ソケットへの非同期チャネルです AsynchronousServerSocketChannelストリーム型リスニングソケットへの非同期チャネルです CompletionHandler非同期操作の結果を消費するためのハンドラ AsynchronousChannelGroupリソースを共有するための非同期チャネルのグループ化
Asynchronous channels は、非同期入出力操作が可能な特殊なタイプのチャネルです。非同期チャネルは非ブロックであり、非同期操作を開始するためのメソッドを定義して、それぞれの操作の保留にされている結果を表す Future を返します。Future を使用して、操作の結果をポーリングするか待機することができます。非同期入出力操作は、操作の完了時に呼び出す CompletionHandler を指定することもできます。終了ハンドラは、入出力操作の結果を消費するために実行されるユーザー指定のコードです。
このパッケージは、ストリーム型接続またはリスニングソケット、またはデータグラム型ソケットに接続されている非同期チャネルクラスを定義します。これは、ファイルの非同期読み取り、書き込み、および操作のための AsynchronousFileChannel クラスも定義します。FileChannel と同様に、ファイルの末尾の切り詰めによって特定のサイズに変更する、ファイルの更新内容をストレージデバイスに強制的に書き込む、またはファイル全体またはファイル内の特定の領域のロックを取得する操作をサポートします。FileChannel とは異なり、ファイルディレクトリの領域をメモリーにマッピングするためのメソッドは定義しません。メモリーにマッピングされた入出力が必要な場合は、FileChannel を使用できます。
非同期チャネルは、リソース共有のために非同期チャネルグループにバインドされます。グループには、グループ内のチャネルで実行される非同期操作の結果を消費する入出力イベントを処理して、終了ハンドラにディスパッチするために、タスクの送信先の関連する ExecutorService があります。チャネルの作成時にオプションでグループを指定したり、チャネルをデフォルトグループにバインドしたりすることができます。上級ユーザーは、独自の非同期チャネルグループを作成するか、デフォルトグループに使用する ExecutorService を構成できます。
セレクタと同様に、非同期チャネルの実装を置き換えるには、java.nio.channels.spi パッケージに定義されている AsynchronousChannelProvider クラスの代替定義またはインスタンスを「プラグイン」します。ただし、この機能は、すべての開発者を対象とした機能ではありません。これは、非常に高い性能が要求されるときに、オペレーティングシステム固有の非同期入出力メカニズムを活用できるようにする、上級ユーザー向け機能です。
ほかで指定がない場合、null 引数をこのパッケージの任意のクラスまたはインタフェースのメソッドまたはコンストラクタへ渡すと、NullPointerException がスローされます。
バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.