如何从 Java 中读取以 NUL 结尾的 UTF-8ByteBuffer
字符串ByteBuffer#position()
?
ByteBuffer b = /* 61 62 63 64 00 31 32 34 00 (hex) */;
String s0 = /* read first string */;
String s1 = /* read second string */;
// `s0` will now contain “ABCD” and `s1` will contain “124”.
我已经尝试过使用Charsets.UTF_8.decode(b)
,但似乎这个函数忽略了当前ByteBuffer
的位置并读取直到缓冲区结束。
是否有比寻找包含 0 的字节并将缓冲区限制为它(或将带有字符串的部分复制到单独的缓冲区中)更惯用的方法来从字节缓冲区读取此类字符串?