|
New I/O API |
ドキュメントの目次 |
v1.4 で導入された New I/O (NIO) API は、バッファ管理、スケーラブルなネットワークとファイル入出力、文字セットのサポート、および正規表現マッチングの分野で新しい機能を提供し、パフォーマンスを向上させています。 NIO API は、java.ioパッケージの入出力機能を補足するものです。機能
NIO API には、次の機能が含まれています。
- プリミティブ型のデータ用のバッファ
- 文字セットのエンコーダおよびデコーダ
- Perl スタイルの正規表現に基づくパターンマッチング機能
- チャネル (新しいプリミティブ入出力の抽象化)
- ロックとメモリマッピングをサポートするファイルインタフェース
- スケーラブルなサーバに出力するための、多重化された非ブロック入出力機能
例
API の参照先
新しいパッケージ、クラス、およびインタフェース
注: このドキュメントでは、J2SE v 1.4 FCS リリース時点の NIO API について説明します。 Beta 2 リリースと Beta 3 リリースの相違点については、「NIO API: Beta 3 の変更点」を参照してください。 Beta 3 リリースと RC リリースの相違点については、「NIO API: RC の変更点」を参照してください。 RC のドキュメントは、RC リリース後に変更され、「その他」の変更点が追加されました。 RC リリースと FCS リリースの間での API の変更はありません。
java.nioパッケージ: バッファ。NIO API 全体で使用されるjava.nio.channelsパッケージ: チャネルとセレクタjava.nio.charsetパッケージ: 文字エンコーディングjava.nio.channels.spiパッケージ: チャネルのためのサービスプロバイダクラスjava.nio.charset.spiパッケージ: 文字セットのためのサービスプロバイダクラスjava.util.regexパッケージ: 正規表現で指定されたパターンに対して文字シーケンスをマッチングするためのクラスjava.lang.CharSequenceインタフェース:java.util.regexパッケージのメソッドに引数として渡せるオブジェクトによって実装されるインタフェース。String、StringBuffer、およびjava.nio.CharBufferクラスがこのインタフェースを実装する注: 新しい
InetSocketAddressおよびSocketAddressクラスは、厳密には NIO API の一部ではありませんが、NIO API によって使用されます。改訂されたクラスおよびインタフェース
FileInputStreamおよびFileOutputStreamクラスでは、基本となるFileChannelオブジェクトを返すgetChannelメソッドが追加され、closeメソッドは基本となるチャネルをクローズするように改訂された- 同様に、
RandomAccessFileクラスでは、getChannelメソッドが追加され、closeメソッドは基本となるチャネルをクローズするように改訂された。RandomAccessFileコンストラクタが、モード文字「s」と「d」をサポートするようになり、ファイルを開くときに、同期書き込みまたは同期データ書き込みを指定できるようになったInputStreamReaderおよびOutputStreamWriterクラスでは、ストリームとCharsetオブジェクトを引数にとるコンストラクタが追加され、getEncodingメソッドが、使用されているエンコーディングの伝統名を返すように改訂された 既存のCharsetDecoderオブジェクトを取るInputStreamReaderのコンストラクタと既存のCharsetEncoderオブジェクトを取るOutputStreamWriterのコンストラクタが追加された。Stringクラスでは、2 つのsplitメソッドが新しく追加された。 さらに、subSequenceメソッドが追加された (Stringが実装するようになったCharSequenceインタフェースで必要)。matches、replaceAll、およびreplaceFirstという 3 つのメソッドが追加された。StringBufferクラスでは、subSequenceメソッドが追加された (StringBufferが実装するようになったCharSequenceインタフェースで必要)Threadクラスでは、interruptメソッドが、チャネル入出力操作でブロックされるスレッドに割り込めるように改訂されたDatagramSocketクラスでは、ソケットがチャネルを持ち、そのチャネルが非ブロックモードである場合に、receiveおよびsendメソッドがjava.nio.channels.IllegalBlockingModeExceptionをスローするように改訂された。 さらに、closeメソッドがソケットのチャネル (ソケットが持っている場合) をクローズするようになり、基本となるチャネル (存在する場合) を返すgetChannelメソッドが新しく追加されたServerSocketクラスでは、ソケットがチャネルを持ち、そのチャネルが非ブロックモードである場合に、acceptおよびimplAcceptメソッドがjava.nio.IllegalBlockingModeExceptionをスローするように改訂された。 さらに、getChannelメソッドが追加され、closeメソッドが改訂された (DatagramSocketクラスと同じ理由による)Socketクラスでは、getInputStreamおよびgetOutputStreamメソッドが、ソケットがチャネルを持っている場合に、すべての入出力操作をそのチャネルに委譲するように改訂された。 また、ソケットがチャネルを持ち、そのチャネルが非ブロックモードである場合に、connectがjava.nio.IllegalBlockingModeExceptionをスローするように改訂された。 さらに、getChannelメソッドが追加され、closeメソッドが改訂された (DatagramSocketクラスと同じ理由による)ダイレクトバッファをサポートするために、新しい 3 つの関数が Java Native Interface (JNI) に追加されました。 詳細は、「v1.4 の JNI 拡張機能」を参照してください。
詳細情報
- New I/O: Additional Documentation
- サポートされているエンコーディング
- JSR-51: New I/O APIs for the Java Platform (注: v1.4 には、この仕様要求で提案されている変更のサブセットが含まれています。)
|
Copyright © 2002 Sun Microsystems, Inc. All Rights Reserved. コメントの送付先: java-io@java.sun.com |
Java ソフトウェア |