我有一个ByteBuffer
最多可以容纳 (4 + size
)的bytes
(即,一个整数后跟size
字符)。但是,写入 的字符数ByteBuffer
可能小于size
。
所以我想知道,有没有办法确定写入了多少个字符,ByteBuffer
而不仅仅是它的总大小?limit
,position
而这似乎不是我所追求的。
谢谢你的帮助!
我有一个ByteBuffer
最多可以容纳 (4 + size
)的bytes
(即,一个整数后跟size
字符)。但是,写入 的字符数ByteBuffer
可能小于size
。
所以我想知道,有没有办法确定写入了多少个字符,ByteBuffer
而不仅仅是它的总大小?limit
,position
而这似乎不是我所追求的。
谢谢你的帮助!
position()
写入 ByteBuffer 后,可以使用该方法找到您写入的字节数。
如果你再flip()
缓冲区,缓冲区中的字节数可以用limit()
orremaining()
方法找到。
如果您随后读取一些缓冲区,则可以使用该remaining()
方法找到剩余的字节数。
DatagramChannel channel = DatagramChannel.open();
ByteBuffer bb = ByteBuffer.allocate(5+size);
channel.receive(bb);
bb.flip();
// actual length of received packet
int len = bb.remaining();