确定ByteBuffer中的字节数

时间:2013-06-02 02:00:08

标签: java size byte bytebuffer

我有ByteBuffer,最多可以容纳(4 + sizebytes(即整数后跟size个字符)。但是,写入ByteBuffer的字符数可能小于size

所以我想知道,无论如何确定有多少字符写入ByteBuffer而不仅仅是它的总大小? limitposition等不会成为我追求的目标。

感谢您的帮助!

2 个答案:

答案 0 :(得分:22)

写入ByteBuffer后,可以使用position()方法找到您编写的字节数。

如果您然后flip()缓冲区,则可以使用limit()remaining()方法找到缓冲区中的字节数。

如果您随后读取了一些缓冲区,则可以使用remaining()方法找到剩余的字节数。

答案 1 :(得分:2)

DatagramChannel channel = DatagramChannel.open();
ByteBuffer bb = ByteBuffer.allocate(5+size);
channel.receive(bb);
bb.flip();
// actual length of received packet
int len = bb.remaining();