JavaのNIOチャンネル(2)

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()、最初の読み出しデータを呼び出し、前記、バッファからデータを読み出し、続いて緩衝液を、逆。

 

おすすめ

転載: www.cnblogs.com/chen970826/p/10938004.html