需要帮助从ByteBuffer读取字符串,直到它到达空位置。
尝试所有可能的方式后。我在这里发布。
答案 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