如何从只读的ByteBuffer中提取String?我不能使用ByteBuffer.array()方法,因为它会抛出ReadOnlyException.我是否必须使用ByteBuffer.get(arr [])并将其复制出来以读取数据并创建字符串?似乎浪费了必须创建一个副本只是为了阅读它.
Jon*_*eet 18
你应该能够使用Charset.decode(ByteBuffer)哪个将a转换ByteBuffer为a CharBuffer.然后就这样打电话toString().示例代码:
import java.nio.*;
import java.nio.charset.*;
class Test {
public static void main(String[] args) throws Exception {
byte[] bytes = { 65, 66 }; // "AB" in ASCII
ByteBuffer byteBuffer =
ByteBuffer.wrap(bytes).asReadOnlyBuffer();
CharBuffer charBuffer = StandardCharsets.US_ASCII.decode(byteBuffer);
String text = charBuffer.toString();
System.out.println(text); // AB
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5781 次 |
| 最近记录: |