记录下-字符串(String)和ByteBuffer(NIO 缓冲区)之间的转换
@Test
public void byteBufferString(){
// 1.字符串转为ByteBuffer
ByteBuffer buffer = ByteBuffer.allocate(21);
buffer.put("马上行计划管理".getBytes(StandardCharsets.UTF_8));
// 写模式 → 读模式
buffer.flip();
// 2. Charset
ByteBuffer charsetsBuffer = StandardCharsets.UTF_8.encode("马上行计划管理");
Assert.isTrue(buffer.equals(charsetsBuffer),"转换失败");
// 3.wrap
ByteBuffer wrapBuffer = ByteBuffer.wrap("马上行计划管理".getBytes(StandardCharsets.UTF_8));
Assert.isTrue(wrapBuffer.equals(charsetsBuffer),"转换失败");
// 转字符串
// 1.
String result = StandardCharsets.UTF_8.decode(buffer).toString();
log.info(result);
// 2.
byte[] bytes = new byte[charsetsBuffer.remaining()];
charsetsBuffer.get(bytes);
String result2 = new String(bytes, StandardCharsets.UTF_8);
log.info(result2);
Assert.isTrue(result2.equals(result),"转换失败");
}