byteBuffer转 字符串
时间: 2023-08-29 09:13:30 浏览: 41
将 ByteBuffer 转换为字符串需要考虑字符编码的问题。以下是示例代码:
```java
import java.nio.charset.Charset;
import java.nio.ByteBuffer;
public class ByteBufferToString {
public static void main(String[] args) {
ByteBuffer buffer = ByteBuffer.wrap(new byte[] { 72, 101, 108, 108, 111 });
// 使用默认字符集解码
String str1 = Charset.defaultCharset().decode(buffer).toString();
System.out.println(str1); // 输出 Hello
// 使用指定字符集解码
Charset charset = Charset.forName("UTF-8");
buffer.rewind(); // 将 position 设为 0
String str2 = charset.decode(buffer).toString();
System.out.println(str2); // 输出 Hello
}
}
```
在示例代码中,首先创建了一个 ByteBuffer 对象,它包含了 5 个字节,表示字符串 "Hello"。然后使用 `Charset` 类提供的方法对 ByteBuffer 进行解码,得到字符串。第一个示例使用了默认字符集,而第二个示例指定了 UTF-8 编码。注意,在使用指定字符集解码之前,需要将 ByteBuffer 的 `position` 属性设置为 0,否则可能会出现解码错误。