java.nio

Class ByteBuffer

Implemented Interfaces:
Comparable
Known Direct Subclasses:
MappedByteBuffer

public abstract class ByteBuffer
extends Buffer
implements Comparable

Since:
1.4

Method Summary

static ByteBuffer
allocate(int capacity)
Allocates a new ByteBuffer object with a given capacity.
static ByteBuffer
allocateDirect(int capacity)
Allocates a new direct byte buffer.
byte[]
array()
Returns the byte array that backs this buffer.
int
arrayOffset()
Returns the offset within this buffer's backing array of the first element.
CharBuffer
asCharBuffer()
Creates a view of this byte buffer as a char buffer.
DoubleBuffer
asDoubleBuffer()
Creates a view of this byte buffer as a double buffer.
FloatBuffer
asFloatBuffer()
Creates a view of this byte buffer as a float buffer.
IntBuffer
asIntBuffer()
Creates a view of this byte buffer as an integer buffer.
LongBuffer
asLongBuffer()
Creates a view of this byte buffer as a long buffer.
ByteBuffer
asReadOnlyBuffer()
Creates a new read-only ByteBuffer that shares this buffer's content.
ShortBuffer
asShortBuffer()
Creates a view of this byte buffer as a short buffer.
ByteBuffer
compact()
Compacts this buffer.
int
compareTo(Object obj)
Compares two ByteBuffer objects.
ByteBuffer
duplicate()
Creates a new ByteBuffer that shares this buffer's content.
boolean
equals(Object obj)
Checks if this buffer is equal to obj.
byte
get()
Reads the byte at this buffer's current position, and then increments the position.
ByteBuffer
get(byte[] dst)
This method transfers bytes from this buffer into the given destination array.
ByteBuffer
get(byte[] dst, int offset, int length)
This method transfers bytes from this buffer into the given destination array.
byte
get(int index)
Absolute get method.
char
getChar()
Relative get method for reading a character value.
char
getChar(int index)
Absolute get method for reading a character value.
double
getDouble()
Relative get method for reading a double value.
double
getDouble(int index)
Absolute get method for reading a double value.
float
getFloat()
Relative get method for reading a float value.
float
getFloat(int index)
Absolute get method for reading a float value.
int
getInt()
Relative get method for reading an integer value.
int
getInt(int index)
Absolute get method for reading an integer value.
long
getLong()
Relative get method for reading a long value.
long
getLong(int index)
Absolute get method for reading a long value.
short
getShort()
Relative get method for reading a short value.
short
getShort(int index)
Absolute get method for reading a short value.
boolean
hasArray()
Tells whether ot not this buffer is backed by an accessible byte array.
int
hashCode()
Calculates a hash code for this buffer.
boolean
isDirect()
Tells whether or not this buffer is direct.
ByteOrder
order()
Returns the byte order of this buffer.
ByteBuffer
order(ByteOrder endian)
Modifies this buffer's byte order.
ByteBuffer
put(byte b)
Writes the byte at this buffer's current position, and then increments the position.
ByteBuffer
put(byte[] src)
Writes the content of the the byte array src into the buffer.
ByteBuffer
put(byte[] src, int offset, int length)
Writes the content of the the byte array src into the buffer.
ByteBuffer
put(int index, byte b)
Absolute put method.
ByteBuffer
put(ByteBuffer src)
Writes the content of the the ByteBUFFER src into the buffer.
ByteBuffer
putChar(char value)
Relative put method for writing a character value.
ByteBuffer
putChar(int index, char value)
Absolute put method for writing a character value.
ByteBuffer
putDouble(double value)
Relative put method for writing a double value.
ByteBuffer
putDouble(int index, double value)
Absolute put method for writing a double value.
ByteBuffer
putFloat(float value)
Relative put method for writing a float value.
ByteBuffer
putFloat(int index, float value)
Relative put method for writing a float value.
ByteBuffer
putInt(int value)
Relative put method for writing an integer value.
ByteBuffer
putInt(int index, int value)
Absolute put method for writing an integer value.
ByteBuffer
putLong(int index, long value)
Absolute put method for writing a float value.
ByteBuffer
putLong(long value)
Relative put method for writing a long value.
ByteBuffer
putShort(int index, short value)
Absolute put method for writing a short value.
ByteBuffer
putShort(short value)
Relative put method for writing a short value.
ByteBuffer
slice()
Creates a new ByteBuffer whose content is a shared subsequence of this buffer's content.
String
toString()
Returns a string summarizing the state of this buffer.
static ByteBuffer
wrap(byte[] array)
Wraps a byte array into a ByteBuffer object.
static ByteBuffer
wrap(byte[] array, int offset, int length)
Wraps a byte array into a ByteBuffer object.

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, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Method Details

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 CharBuffer asCharBuffer()
Creates a view of this byte buffer as a char buffer.


asDoubleBuffer

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


asFloatBuffer

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


asIntBuffer

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


asLongBuffer

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


asReadOnlyBuffer

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


asShortBuffer

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


compact

public ByteBuffer compact()
Compacts this buffer.

Throws:
ReadOnlyBufferException - If this buffer is read-only.


compareTo

public int compareTo(Object obj)
Compares two ByteBuffer objects.
Specified by:
compareTo in interface Comparable

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


duplicate

public 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.
Overrides:
equals in interface Object


get

public 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 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 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 byte get(int index)
Absolute get method.

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


getChar

public 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 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 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 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 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 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 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 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 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 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 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 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.
Overrides:
hashCode in interface Object

Returns:
the hash code


isDirect

public 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(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 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 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 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.


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.


putChar

public 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 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 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 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 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 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 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 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 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.


putLong

public 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.


putShort

public 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.


putShort

public 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.


slice

public 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.
Overrides:
toString in interface Object


wrap

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


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


ByteBuffer.java -- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.