- バッファにデータを書き込む [書き込みモードで、bytebuffer を作成し、clear ()、compact () を実行します]
channel.read(buffer)
2. バッファのputメソッド
buffer.put(byte) buffer.put((byte)'a')..
buffer.put(byte[])
- バッファからデータを読み取る
1. チャネルのwriteメソッド
2. バッファのgetメソッド //getメソッドを呼び出すたびに、positionの位置に影響を与えます。
3. rewindメソッド(アコーディオン)は、postionを0にリセットするために使用され、データを再読み取りするために使用されます。
4. mark&resetメソッドは、markメソッドでマーク(position)を設定し、resetメソッドでマークに戻り、再度実行します。
5. get(i)メソッドは、特定のpositionのデータを取得しますが、positionの位置には影響しません。
- 文字列操作
- 文字列をバッファに格納する
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();
- バッファ内のデータを文字列に変換する
ByteBuffer buffer = ByteBuffer.allocate(10);
buffer.put("孙".getBytes());
buffer.flip();
CharBuffer result = StandardCharsets.UTF_8.decode(buffer);
System.out.println("result.toString() = " + result.toString());