|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のパッケージ 次のパッケージ | フレームあり フレームなし |
参照先:
説明
インタフェースの概要 | |
---|---|
ByteChannel | バイトの読み込みと書き込みができるチャネルです。 |
Channel | 入出力操作に関係するチャネルです。 |
GatheringByteChannel | バッファシーケンスからバイトを書き込むことができるチャネルです。 |
InterruptibleChannel | 非同期のクローズや割り込みが可能なチャネルです。 |
ReadableByteChannel | バイトを読み取ることができるチャネルです。 |
ScatteringByteChannel | バッファシーケンスにバイトを読み込むことができるチャネルです。 |
WritableByteChannel | バイトを書き込むことができるチャネルです。 |
クラスの概要 | |
---|---|
Channels | チャネルとストリームのためのユーティリティメソッドです。 |
DatagramChannel | データグラム型ソケットの選択可能なチャネルです。 |
FileChannel | ファイルの読み込み、書き込み、マッピング、操作用チャネルです。 |
FileChannel.MapMode | ファイルマッピングモードの型保証された列挙です。 |
FileLock | ファイル領域上のロックを示すトークンです。 |
Pipe | 単方向パイプを実装する一組のチャネルです。 |
Pipe.SinkChannel | Pipe の書き込み側を表すチャネルです。 |
Pipe.SourceChannel | Pipe の読み込み側を表すチャネルです。 |
SelectableChannel | Selector 経由で多重化できるチャネルです。 |
SelectionKey | SelectableChannel が Selector に登録されていることを示すトークンです。 |
Selector | SelectableChannel オブジェクトのマルチプレクサです。 |
ServerSocketChannel | ストリーム型リスニングソケット用の選択可能なチャネルです。 |
SocketChannel | ストリーム型接続ソケット用の選択可能チャネルです。 |
例外の概要 | |
---|---|
AlreadyConnectedException | すでに接続されている SocketChannel への接続を試みたときにスローされる、チェックされない例外です。 |
AsynchronousCloseException | 別のスレッドがチャネルまたは入出力操作時にブロックされるチャネルの一部をクローズしたときにスレッドが受け取るチェック例外です。 |
CancelledKeyException | すでに無効になった選択キーを使用しようとしたときにスローされるチェックされない例外です。 |
ClosedByInterruptException | スレッドがチャネルでの入出力操作でブロックされているにもかかわらず、別のスレッドから割り込みを受けた場合に受信するチェック例外です。 |
ClosedChannelException | クローズしたチャネルに対する入出力操作を行おうとしたとき、または実行しようとした入出力操作に対してそのチャネルがクローズされている場合にスローされるチェック例外です。 |
ClosedSelectorException | クローズしたセレクタに対する入出力操作を呼び出そうとしたときにスローされるチェックされない例外です。 |
ConnectionPendingException | 非ブロック接続操作の進行中に SocketChannel に接続しようとしたときにスローされる、チェックされない例外です。 |
FileLockInterruptionException | ファイルロックの獲得を待機しているスレッドに対して別のスレッドから割り込みがあったときに受け取られるチェック例外です。 |
IllegalBlockingModeException | ブロックモードが不正であるのに、チャネル上でブロックモード固有の操作を呼び出したときにスローされるチェックされない例外です。 |
IllegalSelectorException | チャネルの作成元プロバイダ以外が作成したセレクタにチャネルを登録しようとしたときにスローされるチェックされない例外です。 |
NoConnectionPendingException | SocketChannel の connect メソッドの呼び出しがまだ完了していないのに、finishConnect メソッドを呼び出した場合にスローされる未確認の例外です。 |
NonReadableChannelException | 最初は読み込みのためにオープンされていなかったチャネルから読み込みを行おうとしたときにスローされるチェックされない例外です。 |
NonWritableChannelException | 最初は書き込みのためにオープンされていなかったチャネルに対して書き込みを行おうとしたときにスローされるチェックされない例外です。 |
NotYetBoundException | 未バインドのサーバソケットチャネル上で入出力操作を呼び出そうとしたときにスローされるチェックされない例外です。 |
NotYetConnectedException | 未接続のソケットチャネル上で入出力操作を呼び出そうとしたときにスローされるチェックされない例外です。 |
OverlappingFileLockException | ロックを獲得しようとしたファイル領域が、すでに同じ Java 仮想マシンによってロックされている領域にオーバーラップしている場合、またはその他のスレッドが同じファイルのオーバーラップしている領域をロックしようと待機している場合にスローされるチェックされない例外です。 |
UnresolvedAddressException | 未解決のソケットアドレスに対してネットワーク操作を呼び出そうとしたときにスローされるチェックされない例外です。 |
UnsupportedAddressTypeException | サポートされていない型のソケットアドレスにバインドまたは接続しようとしたときにスローされるチェックされない例外です。 |
入出力操作を実行できるエンティティ (ファイル、ソケットなど) への接続を表すチャネルや、多重化された非ブロック入出力操作用のセレクタを定義します。
チャネル 説明 「チャネル」は、1 つ以上の入出力操作 (読み込み、書き込みなど) を実行できるハードウェアデバイス、ファイル、ネットワークソケット、プログラムコンポーネントなどのエンティティへのオープン接続を表します。 ファイルチャネル 説明 多重化された非ブロック入出力 説明 「セレクタ」、「選択可能チャネル」、および「選択キー」によって提供される多重化された非ブロック入出力は、スレッド指向のブロック入出力よりスケーラブルです。
セレクタは選択可能チャネルのマルチプレクサです。選択可能チャネルは、非ブロックモードに分類される特殊なチャネルでもあります。多重化された入出力操作を実行したい場合は、まず選択可能チャネルを 1 個以上作成します。次に、これを非ブロックモードにして、セレクタに セレクタにチャネルを登録したら、範囲があらかじめ宣言されている 1 個以上の操作の実行が可能になったチャネルを検出するため、選択操作を実行します。チャネルの準備ができていれば、登録時に返されたキーがセレクタの「選択キーセット」に追加されます。このキーセットと、このセットに含まれるキーを調べることにより、各チャネルが実行できる操作を判断できます。要求された入出力操作を実行するため、各キーから対応するチャネルを取得できます。
選択キーは、そのチャネルがある操作を実行できる状態になっていることを示します。ただし、これは単なるヒントであって、スレッドがブロックされることなくその操作を実行できることを保証するものではありません。多重化入出力処理を実行するコードは、ヒントの内容が間違っていると判明した場合にそのヒントを無視するように記述してください。
このパッケージは、 セレクタ、選択可能チャネル、選択キーの実装を置き換えたい場合は、 多重化入出力の抽象を実装するために必要とされる登録および同期処理の大部分は、
Channel
入出力操作が行われる場所 ReadableByteChannel
バッファへの読み込みを行う ScatteringByteChannel
バッファシーケンスへの読み込みを行う WritableByteChannel
バッファからの書き出しを行う GatheringByteChannel
バッファシーケンスからの書き出しを行う ByteChannel
バッファへの読み込み、バッファからの書き出しを行う Channels
チャネルとストリームの連携のためのユーティリティメソッド Channel
インタフェースで指定されているとおり、チャネルはオープンかクローズのいずれかです。どちらの状態のチャネルも、「非同期クローズ可能」かつ「割り込み可能」です。
Channel
l インタフェースは、新しい入出力操作を指定する複数のほかのインタフェースによって拡張されています。
ReadableByteChannel
インタフェースは、チャネルからバッファへバイトを読み込む read
メソッドを指定します。同様に、WritableByteChannel
インタフェースは、バッファからチャネルへバイトを書き出す write
メソッドを指定します。ByteChannel
インタフェースは、これら 2 つのインタフェースを統一したインタフェースであり、バイトの読み込みと書き出しの両方を実行できる一般的なチャネルで使用されます。
ScatteringByteChannel
インタフェースと GatheringByteChannel
インタフェースは、それぞれ ReadableByteChannel
インタフェースおよび WritableByteChannel
インタフェースを拡張したもので、それぞれ、単一のバッファではなく複数のバッファのシーケンスを使用する read
メソッドおよび write
メソッドを追加しています。
Channels
ユーティリティクラスは、java.io
パッケージのストリームクラスとこのパッケージのチャネルクラスの連携をサポートする static メソッドを定義します。適切なチャネルを InputStream
または OutputStream
から構築することができます。逆に、InputStream
または OutputStream
をチャネルから構築することもできます。Reader
は、指定された文字セットを使って指定された読み込み可能バイトチャネルのバイトをデコードするように構築できます。一方、Writer
キャッシュは、指定された文字セットを使って文字をバイトへ符号化し、指定された書き込み可能バイトチャネルに書き込むように構築できます。
FileChannel
ファイルの読み込み、書き込み、マッピング、操作 FileLock
ファイルの (領域の) ロック MappedByteBuffer
ファイル領域にマッピングされるダイレクト byte バッファ FileChannel
クラスは、ファイルに接続されたチャネルからのバイトの読み込み、ファイルに接続されたチャネルへのバイトの書き込みといった一般的な操作のほか、現在のファイル位置の照会と変更、ファイル末尾の切り捨てによる特定サイズへの変更をサポートします。このクラスは、ファイル全体またはファイル内の特定の領域のロックを獲得するメソッドを定義します。こうしたメソッドは、FileLock
クラスのインスタンスを返します。さらに、FileChannel
クラスは、ファイルの更新内容をそのファイルが格納されている記憶装置に強制的に書き込むメソッドや、ファイルとその他のチャネル間で効率的にバイトを転送するメソッドや、ファイルの領域をメモリに直接マッピングするメソッドを定義します。この最後の操作のためにインスタンスを作成する MappedByteBuffer
クラスは、いくつかのファイル関連操作を備えた ByteBuffer
クラスを拡張したものです。
java.io
パッケージの FileInputStream
クラス、FileOutputStream
クラス、および RandomAccessFile
クラスに、それぞれ getChannel メソッドが追加されました。これらのうちいずれかのクラスのインスタンスに対してこのメソッドを呼び出すと、基礎にあるファイルに接続されたファイルチャネルが返されます。
SelectableChannel
多重化が可能なチャネル DatagramChannel
java.net.DatagramSocket
用のチャネル Pipe.SinkChannel
パイプの書き込み側 Pipe.SourceChannel
パイプの読み込み側 ServerSocketChannel
java.net.ServerSocket
用のチャネル SocketChannel
java.net.Socket
用のチャネルSelector
選択可能なチャネルのマルチプレクサ SelectionKey
セレクタへのチャネルの登録を表すトークン Pipe
単方向パイプを形成する 2 つのチャネル 登録
します。チャネルを登録する際は、使用可能かどうかをセレクタがテストする一連の入出力操作を指定します。セレクタは、登録を表す選択キーを返します。
java.net
パッケージで定義されている DatagramSocket
クラス、ServerSocket
クラス、および Socket
クラスに対応する選択可能チャネルクラスを定義します。これらのクラスには、チャネルに関連付けられたソケットをサポートできるように、小規模な変更が加えられました。このパッケージは、単方向パイプを実装する単純なクラスも定義します。どの場合にも、新しい選択可能チャネルを作成するには、対応するクラスの open という static メソッドを呼び出します。チャネルが関連ソケットを必要としている場合は、この操作の副作用としてソケットが作成されます。
java.nio.channels.spi
パッケージで定義されている SelectorProvider
クラスの代替定義またはインスタンスを「プラグイン」します。ただし、この機能は、すべての開発者を対象とした機能ではありません。これは、非常に高い性能が要求される場合に、オペレーティングシステム固有の入出力多重化メカニズムを活用できるようにする、上級ユーザ向け機能です。
java.nio.channels.spi
パッケージの AbstractInterruptibleChannel
クラス、AbstractSelectableChannel
クラス、AbstractSelectionKey
クラス、および AbstractSelector
クラスによって実行されます。カスタムセレクタプロバイダを定義する際は、AbstractSelector
クラスと AbstractSelectionKey
クラスだけを直接サブクラス化します。カスタムチャネルクラスは、このパッケージで定義されている適切な SelectableChannel
サブクラスを拡張する必要があります。
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のパッケージ 次のパッケージ | フレームあり フレームなし |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。