好热闹

好热闹

bbbbb

四、NIOのコアAPI

  • バッファにデータを書き込む [書き込みモードで、bytebuffer を作成し、clear ()、compact () を実行します]
   channel.read(buffer)
    2. bufferのputメソッド
   buffer.put(byte)    buffer.put((byte)'a')..
   buffer.put(byte[])
  • バッファからデータを読み取る
1. channelのwriteメソッド

2. bufferのgetメソッド //getメソッドを呼び出すたびに、positionの位置に影響を与えます。

3. rewindメソッド(アコーディオン)、positionを0にリセットするためのもので、データの繰り返し読み取りに使用します。

4. mark&resetメソッド、markメソッドでマーク(position)を設定し、resetメソッドでマークに戻り、再度実行します。

5. get(i)メソッド、特定のpositionのデータを取得しますが、positionの位置に影響を与えません。
  • 文字列操作
  1. 文字列を Buffer に保存する
ByteBuffer buffer = ByteBuffer.allocate(10);
buffer.put("sunshuai".getBytes());

buffer.flip();
while (buffer.hasRemaining()) {
  System.out.println("buffer.get() = " + (char)buffer.get());
}
buffer.clear();


ByteBuffer buffer = Charset.forName("UTF-8").encode("sunshuai");

1、encodeメソッドは、文字列を文字セットでエンコードしてByteBufferに保存します。
2、自動的にByteBufferを読み取りモードに設定し、flipメソッドを手動で呼び出すことはできません。

ByteBuffer buffer = StandardCharsets.UTF_8.encode("sunshuai");

while (buffer.hasRemaining()) {
  System.out.println("buffer.get() = " + (char) buffer.get());
}
buffer.clear();
1、encodeメソッドは、文字列を文字セットでエンコードしてByteBufferに保存します。
2、自動的にByteBufferを読み取りモードに設定し、flipメソッドを手動で呼び出すことはできません。
  
ByteBuffer buffer = ByteBuffer.wrap("sunshuai".getBytes());
while (buffer.hasRemaining()) {
  System.out.println("buffer.get() = " + (char) buffer.get());
}
buffer.clear();
  1. Buffer のデータを文字列に変換する
ByteBuffer buffer = ByteBuffer.allocate(10);
buffer.put("孙".getBytes());

buffer.flip();
CharBuffer result = StandardCharsets.UTF_8.decode(buffer);
System.out.println("result.toString() = " + result.toString());
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。