|
Build 1.0_r1(from source) | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectjava.nio.Buffer
java.nio.ByteBuffer
public abstract class ByteBuffer
A buffer of bytes.
A byte buffer can be created in either of the following ways:
Allocate a new byte array and create a buffer
based on it;Allocate a memory block and create a direct
buffer based on it;Wrap an existing byte array to create a new
buffer.
| Field Summary | |
|---|---|
(package private) org.apache.harmony.luni.platform.Endianness |
order
The byte order of this buffer, default is BIG_ENDIAN. |
| Fields inherited from class java.nio.Buffer |
|---|
_elementSizeShift, capacity, limit, mark, position, UNSET_MARK |
| Constructor Summary | |
|---|---|
ByteBuffer(int capacity)
Constructs a ByteBuffer with given capacity. |
|
| Method Summary | |
|---|---|
(package private) Object |
_array()
Returns the array associated with this buffer, or null if none exists. |
(package private) int |
_arrayOffset()
Returns the offset into the backing array, if one exists, otherwise 0. |
static ByteBuffer |
allocate(int capacity)
Creates a byte buffer based on a new allocated byte array. |
static ByteBuffer |
allocateDirect(int capacity)
Creates a direct byte buffer based on a new allocated memory block. |
byte[] |
array()
Returns the byte array which this buffer is based on, if there's one. |
int |
arrayOffset()
Returns the offset of the byte array which this buffer is based on, if there's one. |
abstract CharBuffer |
asCharBuffer()
Returns a char buffer which is based on the remaining content of this byte buffer. |
abstract DoubleBuffer |
asDoubleBuffer()
Returns a double buffer which is based on the remaining content of this byte buffer. |
abstract FloatBuffer |
asFloatBuffer()
Returns a float buffer which is based on the remaining content of this byte buffer. |
abstract IntBuffer |
asIntBuffer()
Returns a int buffer which is based on the remaining content of this byte buffer. |
abstract LongBuffer |
asLongBuffer()
Returns a long buffer which is based on the remaining content of this byte buffer. |
abstract ByteBuffer |
asReadOnlyBuffer()
Returns a readonly buffer that shares content with this buffer. |
abstract ShortBuffer |
asShortBuffer()
Returns a short buffer which is based on the remaining content of this byte buffer. |
abstract ByteBuffer |
compact()
Compacts this byte buffer. |
int |
compareTo(ByteBuffer otherBuffer)
Compare the remaining bytes of this buffer to another
byte buffer's remaining bytes. |
abstract ByteBuffer |
duplicate()
Returns a duplicated buffer that shares content with this buffer. |
boolean |
equals(Object other)
Tests whether this byte buffer equals to another object. |
abstract byte |
get()
Returns the byte at the current position and increase the position by 1. |
ByteBuffer |
get(byte[] dest)
Reads bytes from the current position into the specified
byte array and increase the position by the number of bytes
read. |
ByteBuffer |
get(byte[] dest,
int off,
int len)
Reads bytes from the current position into the specified
byte array, starting from the specified offset, and increase the position
by the number of bytes read. |
abstract byte |
get(int index)
Returns a byte at the specified index, and the position is not changed. |
abstract char |
getChar()
Returns the char at the current position and increase the position by 2. |
abstract char |
getChar(int index)
Returns the char at the specified index. |
abstract double |
getDouble()
Returns the double at the current position and increase the position by 8. |
abstract double |
getDouble(int index)
Returns the double at the specified index. |
abstract float |
getFloat()
Returns the float at the current position and increase the position by 4. |
abstract float |
getFloat(int index)
Returns the float at the specified index. |
abstract int |
getInt()
Returns the int at the current position and increase the position by 4. |
abstract int |
getInt(int index)
Returns the int at the specified index. |
abstract long |
getLong()
Returns the long at the current position and increase the position by 8. |
abstract long |
getLong(int index)
Returns the long at the specified index. |
abstract short |
getShort()
Returns the short at the current position and increase the position by 2. |
abstract short |
getShort(int index)
Returns the short at the specified index. |
boolean |
hasArray()
Returns whether this buffer is based on a byte array and is read/write. |
int |
hashCode()
Hash code is calculated from the remaining bytes. |
abstract boolean |
isDirect()
Returns true if this buffer is direct. |
ByteOrder |
order()
Returns the byte order used by this buffer when converting bytes from/to other primitive types. |
ByteBuffer |
order(ByteOrder byteOrder)
Sets the byte order of this buffer. |
(package private) ByteBuffer |
orderImpl(ByteOrder byteOrder)
|
(package private) abstract byte[] |
protectedArray()
Child class implements this method to realize array(). |
(package private) abstract int |
protectedArrayOffset()
Child class implements this method to realize arrayOffset(). |
(package private) abstract boolean |
protectedHasArray()
Child class implements this method to realize hasArray(). |
abstract ByteBuffer |
put(byte b)
Writes the given byte to the current position and increase the position by 1. |
ByteBuffer |
put(byte[] src)
Writes bytes in the given byte array to the current
position and increase the position by the number of bytes
written. |
ByteBuffer |
put(byte[] src,
int off,
int len)
Writes bytes in the given byte array, starting from the
specified offset, to the current position and increase the position by
the number of bytes written. |
ByteBuffer |
put(ByteBuffer src)
Writes all the remaining bytes of the src
byte buffer to this buffer's current position, and increase both buffers'
position by the number of bytes copied. |
abstract ByteBuffer |
put(int index,
byte b)
Write a byte to the specified index of this buffer and the position is not changed. |
abstract ByteBuffer |
putChar(char value)
Writes the given char to the current position and increase the position by 2. |
abstract ByteBuffer |
putChar(int index,
char value)
Write a char to the specified index of this buffer. |
abstract ByteBuffer |
putDouble(double value)
Writes the given double to the current position and increase the position by 8. |
abstract ByteBuffer |
putDouble(int index,
double value)
Write a double to the specified index of this buffer. |
abstract ByteBuffer |
putFloat(float value)
Writes the given float to the current position and increase the position by 4. |
abstract ByteBuffer |
putFloat(int index,
float value)
Write a float to the specified index of this buffer. |
abstract ByteBuffer |
putInt(int value)
Writes the given int to the current position and increase the position by 4. |
abstract ByteBuffer |
putInt(int index,
int value)
Write a int to the specified index of this buffer. |
abstract ByteBuffer |
putLong(int index,
long value)
Write a long to the specified index of this buffer. |
abstract ByteBuffer |
putLong(long value)
Writes the given long to the current position and increase the position by 8. |
abstract ByteBuffer |
putShort(int index,
short value)
Write a short to the specified index of this buffer. |
abstract ByteBuffer |
putShort(short value)
Writes the given short to the current position and increase the position by 2. |
abstract ByteBuffer |
slice()
Returns a sliced buffer that shares content with this buffer. |
String |
toString()
Returns a string represents the state of this byte buffer. |
static ByteBuffer |
wrap(byte[] array)
Creates a new byte buffer by wrapping the given byte array. |
static ByteBuffer |
wrap(byte[] array,
int start,
int len)
Creates new a byte buffer by wrapping the given byte array. |
| Methods inherited from class java.nio.Buffer |
|---|
capacity, clear, flip, hasRemaining, isReadOnly, limit, limit, mark, position, position, remaining, reset, rewind |
| Methods inherited from class java.lang.Object |
|---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
org.apache.harmony.luni.platform.Endianness order
BIG_ENDIAN.
| Constructor Detail |
|---|
ByteBuffer(int capacity)
ByteBuffer with given capacity.
capacity - The capacity of the buffer| Method Detail |
|---|
public static ByteBuffer allocate(int capacity)
capacity - The capacity of the new buffer
IllegalArgumentException - If capacity is less than zeropublic static ByteBuffer allocateDirect(int capacity)
capacity - The capacity of the new buffer
IllegalArgumentException - If capacity is less than zeropublic static ByteBuffer wrap(byte[] array)
Calling this method has the same effect as
wrap(array, 0, array.length).
array - The byte array which the new buffer will be based on
public static ByteBuffer wrap(byte[] array,
int start,
int len)
The new buffer's position will be start, limit will be
start + len, capacity will be the length of the array.
array - The byte array which the new buffer will be based onstart - The start index, must be no less than zero and no greater than
array.lengthlen - The length, must be no less than zero and no greater than
array.length - start
IndexOutOfBoundsException - If either start or len is
invalidpublic final byte[] array()
ReadOnlyBufferException - If this buffer is based on a readonly array
UnsupportedOperationException - If this buffer is not based on an arraypublic final int arrayOffset()
The offset is the index of the array corresponds to the zero position of the buffer.
ReadOnlyBufferException - If this buffer is based on a readonly array
UnsupportedOperationException - If this buffer is not based on an arrayObject _array()
Buffer
_array in class Bufferint _arrayOffset()
Buffer
_arrayOffset in class Bufferpublic abstract CharBuffer asCharBuffer()
The new buffer's position is zero, its limit and capacity is the number of remaining bytes divided by two, and its mark is not set. The new buffer's readonly property and byte order are same as this buffer. The new buffer is direct, if this byte buffer is direct.
The new buffer shares content with this buffer, which means either buffer's change of content will be visible to the other. The two buffer's position, limit and mark are independent.
public abstract DoubleBuffer asDoubleBuffer()
The new buffer's position is zero, its limit and capacity is the number of remaining bytes divided by two, and its mark is not set. The new buffer's readonly property and byte order are same as this buffer. The new buffer is direct, if this byte buffer is direct.
The new buffer shares content with this buffer, which means either buffer's change of content will be visible to the other. The two buffer's position, limit and mark are independent.
public abstract FloatBuffer asFloatBuffer()
The new buffer's position is zero, its limit and capacity is the number of remaining bytes divided by two, and its mark is not set. The new buffer's readonly property and byte order are same as this buffer. The new buffer is direct, if this byte buffer is direct.
The new buffer shares content with this buffer, which means either buffer's change of content will be visible to the other. The two buffer's position, limit and mark are independent.
public abstract IntBuffer asIntBuffer()
The new buffer's position is zero, its limit and capacity is the number of remaining bytes divided by two, and its mark is not set. The new buffer's readonly property and byte order are same as this buffer. The new buffer is direct, if this byte buffer is direct.
The new buffer shares content with this buffer, which means either buffer's change of content will be visible to the other. The two buffer's position, limit and mark are independent.
public abstract LongBuffer asLongBuffer()
The new buffer's position is zero, its limit and capacity is the number of remaining bytes divided by two, and its mark is not set. The new buffer's readonly property and byte order are same as this buffer. The new buffer is direct, if this byte buffer is direct.
The new buffer shares content with this buffer, which means either buffer's change of content will be visible to the other. The two buffer's position, limit and mark are independent.
public abstract ByteBuffer asReadOnlyBuffer()
The returned buffer is guaranteed to be a new instance, even this buffer is readonly itself. The new buffer's position, limit, capacity and mark are the same as this buffer.
The new buffer shares content with this buffer, which means this buffer's change of content will be visible to the new buffer. The two buffer's position, limit and mark are independent.
public abstract ShortBuffer asShortBuffer()
The new buffer's position is zero, its limit and capacity is the number of remaining bytes divided by two, and its mark is not set. The new buffer's readonly property and byte order are same as this buffer. The new buffer is direct, if this byte buffer is direct.
The new buffer shares content with this buffer, which means either buffer's change of content will be visible to the other. The two buffer's position, limit and mark are independent.
public abstract ByteBuffer compact()
The remaining bytes will be moved to the head of the
buffer, staring from position zero. Then the position is set to
remaining(); the limit is set to capacity; the mark is
cleared.
ReadOnlyBufferException - If no changes may be made to the contents of this bufferpublic int compareTo(ByteBuffer otherBuffer)
bytes of this buffer to another
byte buffer's remaining bytes.
compareTo in interface Comparable<ByteBuffer>otherBuffer - Another byte buffer
other; 0 if
this equals to other; a positive value if this is
greater than other
ClassCastException - If other is not a byte bufferpublic abstract ByteBuffer duplicate()
The duplicated buffer's position, limit, capacity and mark are the same as this buffer. The duplicated buffer's readonly property and byte order are same as this buffer too.
The new buffer shares content with this buffer, which means either buffer's change of content will be visible to the other. The two buffer's position, limit and mark are independent.
public boolean equals(Object other)
If other is not a byte buffer, then false is returned.
Two byte buffers are equals if, and only if, their remaining
bytes are exactly the same. Position, limit, capacity and
mark are not considered.
equals in class Objectother - the object to compare against
Object.hashCode()public abstract byte get()
BufferUnderflowException - If the position is equal or greater than limitpublic ByteBuffer get(byte[] dest)
bytes from the current position into the specified
byte array and increase the position by the number of bytes
read.
Calling this method has the same effect as
get(dest, 0, dest.length).
dest - The destination byte array
BufferUnderflowException - if dest.length is greater than
remaining()
public ByteBuffer get(byte[] dest,
int off,
int len)
bytes from the current position into the specified
byte array, starting from the specified offset, and increase the position
by the number of bytes read.
dest - The target byte arrayoff - The offset of the byte array, must be no less than zero and no
greater than dest.lengthlen - The number of bytes to read, must be no less
than zero and no greater than dest.length - off
IndexOutOfBoundsException - If either off or len is
invalid
BufferUnderflowException - If len is greater than
remaining()public abstract byte get(int index)
index - The index, must be no less than zero and less than limit
IndexOutOfBoundsException - If index is invalidpublic abstract char getChar()
The 2 bytes start from the current position are composed into a char according to current byte order and returned. The position increases by 2.
BufferUnderflowException - If the position is greater than limit - 2public abstract char getChar(int index)
The 2 bytes start from the specified index are composed into a char according to current byte order and returned. The position is not changed.
index - The index, must be no less than zero and equal or less than
limit - 2
IndexOutOfBoundsException - If index is invalidpublic abstract double getDouble()
The 8 bytes start from the current position are composed into a double according to current byte order and returned. The position increases by 8.
BufferUnderflowException - If the position is greater than limit - 8public abstract double getDouble(int index)
The 8 bytes start from the specified index are composed into a double according to current byte order and returned. The position is not changed.
index - The index, must be no less than zero and equal or less than
limit - 8
IndexOutOfBoundsException - If index is invalidpublic abstract float getFloat()
The 4 bytes start from the current position are composed into a float according to current byte order and returned. The position increases by 4.
BufferUnderflowException - If the position is greater than limit - 4public abstract float getFloat(int index)
The 4 bytes start from the specified index are composed into a float according to current byte order and returned. The position is not changed.
index - The index, must be no less than zero and equal or less than
limit - 4
IndexOutOfBoundsException - If index is invalidpublic abstract int getInt()
The 4 bytes start from the current position are composed into a int according to current byte order and returned. The position increases by 4.
BufferUnderflowException - If the position is greater than limit - 4public abstract int getInt(int index)
The 4 bytes start from the specified index are composed into a int according to current byte order and returned. The position is not changed.
index - The index, must be no less than zero and equal or less than
limit - 4
IndexOutOfBoundsException - If index is invalidpublic abstract long getLong()
The 8 bytes start from the current position are composed into a long according to current byte order and returned. The position increases by 8.
BufferUnderflowException - If the position is greater than limit - 8public abstract long getLong(int index)
The 8 bytes start from the specified index are composed into a long according to current byte order and returned. The position is not changed.
index - The index, must be no less than zero and equal or less than
limit - 8
IndexOutOfBoundsException - If index is invalidpublic abstract short getShort()
The 2 bytes start from the current position are composed into a short according to current byte order and returned. The position increases by 2.
BufferUnderflowException - If the position is greater than limit - 2public abstract short getShort(int index)
The 2 bytes start from the specified index are composed into a short according to current byte order and returned. The position is not changed.
index - The index, must be no less than zero and equal or less than
limit - 2
IndexOutOfBoundsException - If index is invalidpublic final boolean hasArray()
If this buffer is readonly, then false is returned.
public int hashCode()
bytes.
Position, limit, capacity and mark don't affect the hash code.
hashCode in class Objectbytes.Object.equals(java.lang.Object)public abstract boolean isDirect()
A byte buffer is direct, if it is based on a byte buffer and the byte buffer is direct.
public final ByteOrder order()
bytes from/to other primitive types.
The default byte order of byte buffer is always BIG_ENDIAN.
bytes from/to other primitive types.public final ByteBuffer order(ByteOrder byteOrder)
byteOrder - The byte order to set. If null then the order
will be LITTLE_ENDIAN.
ByteOrderByteBuffer orderImpl(ByteOrder byteOrder)
abstract byte[] protectedArray()
array().
array()abstract int protectedArrayOffset()
arrayOffset().
arrayOffset()abstract boolean protectedHasArray()
hasArray().
hasArray()public abstract ByteBuffer put(byte b)
b - The byte to write
BufferOverflowException - If position is equal or greater than limit
ReadOnlyBufferException - If no changes may be made to the contents of this bufferpublic final ByteBuffer put(byte[] src)
bytes in the given byte array to the current
position and increase the position by the number of bytes
written.
Calling this method has the same effect as
put(src, 0, src.length).
src - The source byte array
BufferOverflowException - If remaining() is less than
src.length
ReadOnlyBufferException - If no changes may be made to the contents of this buffer
public ByteBuffer put(byte[] src,
int off,
int len)
bytes in the given byte array, starting from the
specified offset, to the current position and increase the position by
the number of bytes written.
src - The source byte arrayoff - The offset of byte array, must be no less than zero and no
greater than src.lengthlen - The number of bytes to write, must be no less
than zero and no greater than src.length - off
BufferOverflowException - If remaining() is less than
len
IndexOutOfBoundsException - If either off or len is
invalid
ReadOnlyBufferException - If no changes may be made to the contents of this bufferpublic ByteBuffer put(ByteBuffer src)
bytes of the src
byte buffer to this buffer's current position, and increase both buffers'
position by the number of bytes copied.
src - The source byte buffer
BufferOverflowException - If src.remaining() is greater than this
buffer's remaining()
IllegalArgumentException - If src is this buffer
ReadOnlyBufferException - If no changes may be made to the contents of this buffer
public abstract ByteBuffer put(int index,
byte b)
index - The index, must be no less than zero and less than the limitb - The byte to write
IndexOutOfBoundsException - If index is invalid
ReadOnlyBufferException - If no changes may be made to the contents of this bufferpublic abstract ByteBuffer putChar(char value)
The char is converted to bytes using the current byte order.
value - The char to write
BufferOverflowException - If position is greater than limit - 2
ReadOnlyBufferException - If no changes may be made to the contents of this buffer
public abstract ByteBuffer putChar(int index,
char value)
The char is converted to bytes using the current byte order. The position is not changed.
index - The index, must be no less than zero and equal or less than
limit - 2value - The char to write
IndexOutOfBoundsException - If index is invalid
ReadOnlyBufferException - If no changes may be made to the contents of this bufferpublic abstract ByteBuffer putDouble(double value)
The double is converted to bytes using the current byte order.
value - The double to write
BufferOverflowException - If position is greater than limit - 8
ReadOnlyBufferException - If no changes may be made to the contents of this buffer
public abstract ByteBuffer putDouble(int index,
double value)
The double is converted to bytes using the current byte order. The position is not changed.
index - The index, must be no less than zero and equal or less than
limit - 8value - The double to write
IndexOutOfBoundsException - If index is invalid
ReadOnlyBufferException - If no changes may be made to the contents of this bufferpublic abstract ByteBuffer putFloat(float value)
The float is converted to bytes using the current byte order.
value - The float to write
BufferOverflowException - If position is greater than limit - 4
ReadOnlyBufferException - If no changes may be made to the contents of this buffer
public abstract ByteBuffer putFloat(int index,
float value)
The float is converted to bytes using the current byte order. The position is not changed.
index - The index, must be no less than zero and equal or less than
limit - 4value - The float to write
IndexOutOfBoundsException - If index is invalid
ReadOnlyBufferException - If no changes may be made to the contents of this bufferpublic abstract ByteBuffer putInt(int value)
The int is converted to bytes using the current byte order.
value - The int to write
BufferOverflowException - If position is greater than limit - 4
ReadOnlyBufferException - If no changes may be made to the contents of this buffer
public abstract ByteBuffer putInt(int index,
int value)
The int is converted to bytes using the current byte order. The position is not changed.
index - The index, must be no less than zero and equal or less than
limit - 4value - The int to write
IndexOutOfBoundsException - If index is invalid
ReadOnlyBufferException - If no changes may be made to the contents of this bufferpublic abstract ByteBuffer putLong(long value)
The long is converted to bytes using the current byte order.
value - The long to write
BufferOverflowException - If position is greater than limit - 8
ReadOnlyBufferException - If no changes may be made to the contents of this buffer
public abstract ByteBuffer putLong(int index,
long value)
The long is converted to bytes using the current byte order. The position is not changed.
index - The index, must be no less than zero and equal or less than
limit - 8value - The long to write
IndexOutOfBoundsException - If index is invalid
ReadOnlyBufferException - If no changes may be made to the contents of this bufferpublic abstract ByteBuffer putShort(short value)
The short is converted to bytes using the current byte order.
value - The short to write
BufferOverflowException - If position is greater than limit - 2
ReadOnlyBufferException - If no changes may be made to the contents of this buffer
public abstract ByteBuffer putShort(int index,
short value)
The short is converted to bytes using the current byte order. The position is not changed.
index - The index, must be no less than zero and equal or less than
limit - 2value - The short to write
IndexOutOfBoundsException - If index is invalid
ReadOnlyBufferException - If no changes may be made to the contents of this bufferpublic abstract ByteBuffer slice()
The sliced buffer's capacity will be this buffer's
remaining(), and its zero position will correspond to
this buffer's current position. The new buffer's position will be
0, limit will be its capacity, and its mark is unset. The new buffer's
readonly property and byte order are same as this buffer.
The new buffer shares content with this buffer, which means either buffer's change of content will be visible to the other. The two buffer's position, limit and mark are independent.
public String toString()
toString in class Object
|
Build 1.0_r1(from source) | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||