JavaのNIOのチャネルの流れは似ていますが、また異なるがあります。
- チャンネルは双方向性で、いずれかのチャネルからデータを読み取るために、およびチャネルにデータを書き込むことができます。書き込みストリームは、一般的に一方向です。
- 非同期読み込みとチャンネルを書きます。
- データ・チャネルは、常に最初のバッファを読んで、または常にバッファから書かれました。
チャネルの実装
以下は、Java NIOの中で最も重要な通路の実現です。
- ファイルからのデータの読み書きのFileChannel。
- UDPのDatagramChannelは、ネットワーク内のデータを読み書きすることができます。
- SocketChannel TCPは、ネットワーク内のデータを読み書きすることができます。
- ServerSocketChannelは、Webサーバーとの新しい着信TCP接続のために聞くことができます。なりますそれぞれの新しい着信接続のためのSocketChannelを作成します。
チャンネルの例
ここでバッファのFileChannelに読み出したデータの例は以下のとおりです。
RandomAccessFile aFileの位置=新規のRandomAccessFile( "データ / NIO-data.txtを"、 "RW"); // 指定された場所とファイルエントリのフォーマットにアクセスする
のFileChannel inChannel aFile.getChannel =();
のByteBuffer BUF = ByteBuffer.allocate(48);
INT = inChannel.read bytesRead(BUF);
(!bytesRead = -1)、一方{
するSystem.out.println( "読む" + bytesRead);
buf.flip();
一方(buf.hasRemaining()){
のSystem.out。プリント((CHAR)buf.get());
}
buf.clear();
bytesRead = inChannel.read(BUF);
}
aFile.close();
バッファにbuf.flip()、最初の読み出しデータを呼び出し、前記、バッファからデータを読み出し、続いて緩衝液を、逆。