|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のパッケージ 次のパッケージ | フレームあり フレームなし |
参照先:
説明
インタフェースの概要 | |
---|---|
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 個以上の操作の実行が可能になったチャネルを検出するため、選択操作を実行します。チャネルの準備ができていれば、登録時に返されたキーがセレクタの「選択キーセット」に追加されます。このキーセットと、このセットに含まれるキーを調べることにより、各チャネルが実行できる操作を判断できます。要求された入出力操作を実行するため、各キーから対応するチャネルを取得できます。
選択キーは、そのチャネルがある操作を実行できる状態になっていることを示します。ただし、これは単なるヒントであって、スレッドがブロックされることなくある操作を実行できることを保証するわけではありません。ヒントの内容が明らかに不正な場合は、これを無視するために、多重化入出力処理を実行するコードを書き込む必要があります。
このパッケージは、 セレクタ、選択可能チャネル、選択キーの実装を置き換えたい場合は、 多重化入出力の抽象化オブジェクトを実装するために必要とされる登録および同期処理は、ほとんどの場合、 ほかで指定がない場合、null 引数をコンストラクタ、またはこのパッケージの任意のクラスまたはインタフェースのメソッドへ渡すと
Channel
入出力操作が行われる場所
ReadableByteChannel
バッファーへの読み込みを行う
ScatteringByteChannel
バッファーシーケンスへの読み込みを行う
WritableByteChannel
バッファーからの書き出しを行う
GatheringByteChannel
バッファーシーケンスからの書き出しを行う
ByteChannel
バッファーへの読み込み、バッファーからの書き出しを行う Channels
チャネルとストリームの相互運用のためのユーティリティーメソッド Channel
インタフェースに指定されているとおり、チャネルの状態はオープンかクローズのどちらかです。どちらの状態のチャネルも、「非同期クローズ」かつ「割り込み可能」です。
Channel
インタフェースは、それぞれが新しい入出力操作を指定する複数のほかのインタフェースによって拡張されます。
ReadableByteChannel
インタフェースは、チャネルからバッファーへバイトを読み込む read
メソッドを指定します。同様に、WritableByteChannel
インタフェースは、バッファーからチャネルへバイトを書き出す write
メソッドを指定します。ByteChannel
インタフェースは、これら 2 つのインタフェースを統一したインタフェースであり、バイトの読み込みと書き出しの両方を実行できる一般的なチャネルで使用されます。
read
メソッドと write
メソッドを追加することにより、 ScatteringByteChannel
インタフェースは ReadableByteChannel
インタフェース、GatheringByteChannel
インタフェースは WritableByteChannel
インタフェースを拡張します。
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 メソッドが追加されています。この 3 つのうちいずれかのクラスのインスタンス上で 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 メソッドを呼び出すことによって作成されます。チャネルが関連ソケットを必要としている場合は、この操作の副作用としてソケットが作成されます。
java.nio.channels.spi
パッケージに定義されている SelectorProvider
クラスの代替定義またはインスタンスをプラグインします。ただし、この機能は、すべての開発者を対象とした機能ではありません。これは、非常に高い性能が要求される場合に、オペレーティングシステム固有の入出力多重化メカニズムを活用できるようにする、上級ユーザー向け機能です。
java.nio.channels.spi
パッケージの AbstractInterruptibleChannel
クラス、AbstractSelectableChannel
クラス、AbstractSelectionKey
クラス、AbstractSelector
クラスによって実行されます。カスタムセレクタプロバイダを定義する際、直接サブクラス化されるのは AbstractSelector
クラスと AbstractSelectionKey
クラスだけです。カスタムチャネルクラスは、このパッケージに定義されている適切な SelectableChannel
サブクラスを拡張する必要があります。
NullPointerException
がスローされます。
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のパッケージ 次のパッケージ | フレームあり フレームなし |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。