|
How to get bytes from a ByteBuffer |
|
|
This Java tip demonstrates a method of getting bytes from a ByteBuffer. A ByteBuffer
has a capacity that determines how many bytes it contains. This capacity can never
change. The bytes in a ByteBuffer can also be retrieved using the relative version of get(),
which uses the position and limit properties of the buffer. In particular, this version
of get() retrieves the byte at the position and advances the position by one. get()
cannot retrieve bytes past the limit (even though the limit might be less than the capacity).
The position is always <= limit and limit is always <= capacity.
// Create an empty ByteBuffer with a 10 byte capacity
ByteBuffer bbuf = ByteBuffer.allocate(10);
// Retrieve the capacity of the ByteBuffer
int capacity = bbuf.capacity(); // 10
// The position is not affected by the absolute get() method.
byte b = bbuf.get(5); // position=0
// Set the position
bbuf.position(5);
// Use the relative get()
b = bbuf.get();
// Get the new position
int pos = bbuf.position(); // 6
// Get remaining byte count
int rem = bbuf.remaining(); // 4
// Set the limit
bbuf.limit(7); // remaining=1
// This convenience method sets the position to 0
bbuf.rewind(); // remaining=7
|
Related Tips
|
Page 1 of 0 ( 0 comments )
You can share your information about this topic using the form below!
Please do not post your questions with this form! Thanks.