从ByteBuffer读取字符串,直到到达空字节(00)位置

时间:2018-12-10 10:47:41

标签: java bytebuffer

需要帮助从ByteBuffer读取字符串,直到它到达空位置。

尝试所有可能的方式后。我在这里发布。

1 个答案:

答案 0 :(得分:1)

由于null通常表示为0,因此您必须阅读直到遇到\0字符。如果必须支持多字节编码,这可能会很棘手,但是对于ASCII来说就足够了:

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