从ByteBuffer读取字符串时需要帮助,直到它到达空位置 .
经过一切可能的尝试 . 我发布在这里 .
由于 null 通常表示为 0 ,因此必须阅读,直到遇到 \0 char . 如果你必须支持多字节编码,这可能会变得棘手,但对于ASCII,它应该足够了:
null
0
\0
byte[] bytes = { 'H', 'e', 'l', 'l', 'o', '\0'}; ByteBuffer buf = ByteBuffer.wrap(bytes); StringBuilder builder = new StringBuilder(); char ch; while ((ch = (char) buf.get()) != '\0') { builder.append(ch); } System.out.println(builder); // Hello
1 回答
由于
null
通常表示为0
,因此必须阅读,直到遇到\0
char . 如果你必须支持多字节编码,这可能会变得棘手,但对于ASCII,它应该足够了: