java.nio

Class ByteBuffer

public abstract class ByteBuffer extends Buffer implements Comparable<ByteBuffer>

Since: 1.4

Method Summary
static ByteBufferallocate(int capacity)
Allocates a new ByteBuffer object with a given capacity.
static ByteBufferallocateDirect(int capacity)
Allocates a new direct byte buffer.
byte[]array()
Returns the byte array that backs this buffer.
intarrayOffset()
Returns the offset within this buffer's backing array of the first element.
abstract CharBufferasCharBuffer()
Creates a view of this byte buffer as a char buffer.
abstract DoubleBufferasDoubleBuffer()
Creates a view of this byte buffer as a double buffer.
abstract FloatBufferasFloatBuffer()
Creates a view of this byte buffer as a float buffer.
abstract IntBufferasIntBuffer()
Creates a view of this byte buffer as an integer buffer.
abstract LongBufferasLongBuffer()
Creates a view of this byte buffer as a long buffer.
abstract ByteBufferasReadOnlyBuffer()
Creates a new read-only ByteBuffer that shares this buffer's content.
abstract ShortBufferasShortBuffer()
Creates a view of this byte buffer as a short buffer.
abstract ByteBuffercompact()
Compacts this buffer.
intcompareTo(ByteBuffer other)
Compares two ByteBuffer objects.
abstract ByteBufferduplicate()
Creates a new ByteBuffer that shares this buffer's content.
booleanequals(Object obj)
Checks if this buffer is equal to obj.
ByteBufferget(byte[] dst, int offset, int length)
This method transfers bytes from this buffer into the given destination array.
ByteBufferget(byte[] dst)
This method transfers bytes from this buffer into the given destination array.
abstract byteget()
Reads the byte at this buffer's current position, and then increments the position.
abstract byteget(int index)
Absolute get method.
abstract chargetChar()
Relative get method for reading a character value.
abstract chargetChar(int index)
Absolute get method for reading a character value.
abstract doublegetDouble()
Relative get method for reading a double value.
abstract doublegetDouble(int index)
Absolute get method for reading a double value.
abstract floatgetFloat()
Relative get method for reading a float value.
abstract floatgetFloat(int index)
Absolute get method for reading a float value.
abstract intgetInt()
Relative get method for reading an integer value.
abstract intgetInt(int index)
Absolute get method for reading an integer value.
abstract longgetLong()
Relative get method for reading a long value.
abstract longgetLong(int index)
Absolute get method for reading a long value.
abstract shortgetShort()
Relative get method for reading a short value.
abstract shortgetShort(int index)
Absolute get method for reading a short value.
booleanhasArray()
Tells whether ot not this buffer is backed by an accessible byte array.
inthashCode()
Calculates a hash code for this buffer.
abstract booleanisDirect()
Tells whether or not this buffer is direct.
ByteOrderorder()
Returns the byte order of this buffer.
ByteBufferorder(ByteOrder endian)
Modifies this buffer's byte order.
ByteBufferput(ByteBuffer src)
Writes the content of the the ByteBUFFER src into the buffer.
ByteBufferput(byte[] src, int offset, int length)
Writes the content of the the byte array src into the buffer.
ByteBufferput(byte[] src)
Writes the content of the the byte array src into the buffer.
abstract ByteBufferput(byte b)
Writes the byte at this buffer's current position, and then increments the position.
abstract ByteBufferput(int index, byte b)
Absolute put method.
abstract ByteBufferputChar(char value)
Relative put method for writing a character value.
abstract ByteBufferputChar(int index, char value)
Absolute put method for writing a character value.
abstract ByteBufferputDouble(double value)
Relative put method for writing a double value.
abstract ByteBufferputDouble(int index, double value)
Absolute put method for writing a double value.
abstract ByteBufferputFloat(float value)
Relative put method for writing a float value.
abstract ByteBufferputFloat(int index, float value)
Relative put method for writing a float value.
abstract ByteBufferputInt(int value)
Relative put method for writing an integer value.
abstract ByteBufferputInt(int index, int value)
Absolute put method for writing an integer value.
abstract ByteBufferputLong(long value)
Relative put method for writing a long value.
abstract ByteBufferputLong(int index, long value)
Absolute put method for writing a float value.
abstract ByteBufferputShort(short value)
Relative put method for writing a short value.
abstract ByteBufferputShort(int index, short value)
Absolute put method for writing a short value.
abstract ByteBufferslice()
Creates a new ByteBuffer whose content is a shared subsequence of this buffer's content.
StringtoString()
Returns a string summarizing the state of this buffer.
static ByteBufferwrap(byte[] array, int offset, int length)
Wraps a byte array into a ByteBuffer object.
static ByteBufferwrap(byte[] array)
Wraps a byte array into a ByteBuffer object.

Method Detail

allocate

public static ByteBuffer allocate(int capacity)
Allocates a new ByteBuffer object with a given capacity.

allocateDirect

public static ByteBuffer allocateDirect(int capacity)
Allocates a new direct byte buffer.

array

public final byte[] array()
Returns the byte array that backs this buffer.

Throws: ReadOnlyBufferException If this buffer is read-only. UnsupportedOperationException If this buffer is not backed by an accessible array.

arrayOffset

public final int arrayOffset()
Returns the offset within this buffer's backing array of the first element.

Throws: ReadOnlyBufferException If this buffer is read-only. UnsupportedOperationException If this buffer is not backed by an accessible array.

asCharBuffer

public abstract CharBuffer asCharBuffer()
Creates a view of this byte buffer as a char buffer.

asDoubleBuffer

public abstract DoubleBuffer asDoubleBuffer()
Creates a view of this byte buffer as a double buffer.

asFloatBuffer

public abstract FloatBuffer asFloatBuffer()
Creates a view of this byte buffer as a float buffer.

asIntBuffer

public abstract IntBuffer asIntBuffer()
Creates a view of this byte buffer as an integer buffer.

asLongBuffer

public abstract LongBuffer asLongBuffer()
Creates a view of this byte buffer as a long buffer.

asReadOnlyBuffer

public abstract ByteBuffer asReadOnlyBuffer()
Creates a new read-only ByteBuffer that shares this buffer's content.

asShortBuffer

public abstract ShortBuffer asShortBuffer()
Creates a view of this byte buffer as a short buffer.

compact

public abstract ByteBuffer compact()
Compacts this buffer.

Throws: ReadOnlyBufferException If this buffer is read-only.

compareTo

public int compareTo(ByteBuffer other)
Compares two ByteBuffer objects.

Throws: ClassCastException If obj is not an object derived from ByteBuffer.

duplicate

public abstract ByteBuffer duplicate()
Creates a new ByteBuffer that shares this buffer's content.

equals

public boolean equals(Object obj)
Checks if this buffer is equal to obj.

get

public ByteBuffer get(byte[] dst, int offset, int length)
This method transfers bytes from this buffer into the given destination array. Before the transfer, it checks if there are fewer than length bytes remaining in this buffer.

Parameters: dst The destination array offset The offset within the array of the first byte to be written; must be non-negative and no larger than dst.length. length The maximum number of bytes to be written to the given array; must be non-negative and no larger than dst.length - offset.

Throws: BufferUnderflowException If there are fewer than length bytes remaining in this buffer. IndexOutOfBoundsException If the preconditions on the offset and length parameters do not hold.

get

public ByteBuffer get(byte[] dst)
This method transfers bytes from this buffer into the given destination array.

Parameters: dst The byte array to write into.

Throws: BufferUnderflowException If there are fewer than dst.length bytes remaining in this buffer.

get

public abstract byte get()
Reads the byte at this buffer's current position, and then increments the position.

Throws: BufferUnderflowException If there are no remaining bytes in this buffer.

get

public abstract byte get(int index)
Absolute get method.

Throws: IndexOutOfBoundsException If index is negative or not smaller than the buffer's limit.

getChar

public abstract char getChar()
Relative get method for reading a character value.

Throws: BufferUnderflowException If there are fewer than two bytes remaining in this buffer.

getChar

public abstract char getChar(int index)
Absolute get method for reading a character value.

Throws: IndexOutOfBoundsException If there are fewer than two bytes remaining in this buffer

getDouble

public abstract double getDouble()
Relative get method for reading a double value.

Throws: BufferUnderflowException If there are fewer than eight bytes remaining in this buffer.

getDouble

public abstract double getDouble(int index)
Absolute get method for reading a double value.

Throws: IndexOutOfBoundsException If index is negative or not smaller than the buffer's limit, minus seven.

getFloat

public abstract float getFloat()
Relative get method for reading a float value.

Throws: BufferUnderflowException If there are fewer than four bytes remaining in this buffer.

getFloat

public abstract float getFloat(int index)
Absolute get method for reading a float value.

Throws: IndexOutOfBoundsException If index is negative or not smaller than the buffer's limit, minus three.

getInt

public abstract int getInt()
Relative get method for reading an integer value.

Throws: BufferUnderflowException If there are fewer than four bytes remaining in this buffer.

getInt

public abstract int getInt(int index)
Absolute get method for reading an integer value.

Throws: IndexOutOfBoundsException If index is negative or not smaller than the buffer's limit, minus three.

getLong

public abstract long getLong()
Relative get method for reading a long value.

Throws: BufferUnderflowException If there are fewer than eight bytes remaining in this buffer.

getLong

public abstract long getLong(int index)
Absolute get method for reading a long value.

Throws: IndexOutOfBoundsException If index is negative or not smaller than the buffer's limit, minus seven.

getShort

public abstract short getShort()
Relative get method for reading a short value.

Throws: BufferUnderflowException If index is negative or not smaller than the buffer's limit, minus one.

getShort

public abstract short getShort(int index)
Absolute get method for reading a short value.

Throws: IndexOutOfBoundsException If there are fewer than two bytes remaining in this buffer

hasArray

public final boolean hasArray()
Tells whether ot not this buffer is backed by an accessible byte array.

hashCode

public int hashCode()
Calculates a hash code for this buffer. This is done with int arithmetic, where ** represents exponentiation, by this formula:
s[position()] + 31 + (s[position()+1] + 30)*31**1 + ... + (s[limit()-1]+30)*31**(limit()-1). Where s is the buffer data. Note that the hashcode is dependent on buffer content, and therefore is not useful if the buffer content may change.

Returns: the hash code

isDirect

public abstract boolean isDirect()
Tells whether or not this buffer is direct.

order

public final ByteOrder order()
Returns the byte order of this buffer.

order

public final ByteBuffer order(ByteOrder endian)
Modifies this buffer's byte order.

put

public ByteBuffer put(ByteBuffer src)
Writes the content of the the ByteBUFFER src into the buffer. Before the transfer, it checks if there is fewer than src.remaining() space remaining in this buffer.

Parameters: src The source data.

Throws: BufferOverflowException If there is insufficient space in this buffer for the remaining bytes in the source buffer. IllegalArgumentException If the source buffer is this buffer. ReadOnlyBufferException If this buffer is read-only.

put

public ByteBuffer put(byte[] src, int offset, int length)
Writes the content of the the byte array src into the buffer. Before the transfer, it checks if there is fewer than length space remaining in this buffer.

Parameters: src The array to copy into the buffer. offset The offset within the array of the first byte to be read; must be non-negative and no larger than src.length. length The number of bytes to be read from the given array; must be non-negative and no larger than src.length - offset.

Throws: BufferOverflowException If there is insufficient space in this buffer for the remaining bytes in the source array. IndexOutOfBoundsException If the preconditions on the offset and length parameters do not hold ReadOnlyBufferException If this buffer is read-only.

put

public final ByteBuffer put(byte[] src)
Writes the content of the the byte array src into the buffer.

Parameters: src The array to copy into the buffer.

Throws: BufferOverflowException If there is insufficient space in this buffer for the remaining bytes in the source array. ReadOnlyBufferException If this buffer is read-only.

put

public abstract ByteBuffer put(byte b)
Writes the byte at this buffer's current position, and then increments the position.

Throws: BufferOverflowException If there no remaining bytes in this buffer. ReadOnlyBufferException If this buffer is read-only.

put

public abstract ByteBuffer put(int index, byte b)
Absolute put method.

Throws: IndexOutOfBoundsException If index is negative or not smaller than the buffer's limit. ReadOnlyBufferException If this buffer is read-only.

putChar

public abstract ByteBuffer putChar(char value)
Relative put method for writing a character value.

Throws: BufferOverflowException If this buffer's current position is not smaller than its limit.

putChar

public abstract ByteBuffer putChar(int index, char value)
Absolute put method for writing a character value.

Throws: IndexOutOfBoundsException If index is negative or not smaller than the buffer's limit, minus one.

putDouble

public abstract ByteBuffer putDouble(double value)
Relative put method for writing a double value.

Throws: BufferOverflowException If this buffer's current position is not smaller than its limit.

putDouble

public abstract ByteBuffer putDouble(int index, double value)
Absolute put method for writing a double value.

Throws: IndexOutOfBoundsException If index is negative or not smaller than the buffer's limit, minus seven.

putFloat

public abstract ByteBuffer putFloat(float value)
Relative put method for writing a float value.

Throws: BufferOverflowException If there are fewer than four bytes remaining in this buffer.

putFloat

public abstract ByteBuffer putFloat(int index, float value)
Relative put method for writing a float value.

Throws: IndexOutOfBoundsException If index is negative or not smaller than the buffer's limit, minus three.

putInt

public abstract ByteBuffer putInt(int value)
Relative put method for writing an integer value.

Throws: BufferOverflowException If this buffer's current position is not smaller than its limit.

putInt

public abstract ByteBuffer putInt(int index, int value)
Absolute put method for writing an integer value.

Throws: IndexOutOfBoundsException If index is negative or not smaller than the buffer's limit, minus three.

putLong

public abstract ByteBuffer putLong(long value)
Relative put method for writing a long value.

Throws: BufferOverflowException If this buffer's current position is not smaller than its limit.

putLong

public abstract ByteBuffer putLong(int index, long value)
Absolute put method for writing a float value.

Throws: IndexOutOfBoundsException If index is negative or not smaller than the buffer's limit, minus seven.

putShort

public abstract ByteBuffer putShort(short value)
Relative put method for writing a short value.

Throws: BufferOverflowException If this buffer's current position is not smaller than its limit.

putShort

public abstract ByteBuffer putShort(int index, short value)
Absolute put method for writing a short value.

Throws: IndexOutOfBoundsException If index is negative or not smaller than the buffer's limit, minus one.

slice

public abstract ByteBuffer slice()
Creates a new ByteBuffer whose content is a shared subsequence of this buffer's content.

toString

public String toString()
Returns a string summarizing the state of this buffer.

wrap

public static final ByteBuffer wrap(byte[] array, int offset, int length)
Wraps a byte array into a ByteBuffer object.

Throws: IndexOutOfBoundsException If the preconditions on the offset and length parameters do not hold

wrap

public static final ByteBuffer wrap(byte[] array)
Wraps a byte array into a ByteBuffer object.