# Class IIOByteBuffer

java.lang.Object
javax.imageio.stream.IIOByteBuffer

public class IIOByteBuffer extends Object
A class representing a mutable reference to an array of bytes and an offset and length within that array. `IIOByteBuffer` is used by `ImageInputStream` to supply a sequence of bytes to the caller, possibly with fewer copies than using the conventional `read` methods that take a user-supplied byte array.

The byte array referenced by an `IIOByteBuffer` will generally be part of an internal data structure belonging to an `ImageReader` implementation; its contents should be considered read-only and must not be modified.

## Constructor Summary

Constructors
Constructor
Description
`IIOByteBuffer(byte[] data, int offset, int length)`
Constructs an `IIOByteBuffer` that references a given byte array, offset, and length.

## Method Summary

Modifier and Type
Method
Description
`byte[]`
`getData()`
Returns a reference to the byte array.
`int`
`getLength()`
Returns the length of the data of interest within the byte array returned by `getData`.
`int`
`getOffset()`
Returns the offset within the byte array returned by `getData` at which the data of interest start.
`void`
`setData(byte[] data)`
Updates the array reference that will be returned by subsequent calls to the `getData` method.
`void`
`setLength(int length)`
Updates the value that will be returned by subsequent calls to the `getLength` method.
`void`
`setOffset(int offset)`
Updates the value that will be returned by subsequent calls to the `getOffset` method.

### Methods declared in class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
Modifier and Type
Method
Description
`protected Object`
`clone()`
Creates and returns a copy of this object.
`boolean`
`equals(Object obj)`
Indicates whether some other object is "equal to" this one.
`protected void`
`finalize()`
Deprecated, for removal: This API element is subject to removal in a future version.
Finalization is deprecated and subject to removal in a future release.
`final Class<?>`
`getClass()`
Returns the runtime class of this `Object`.
`int`
`hashCode()`
Returns a hash code value for this object.
`final void`
`notify()`
Wakes up a single thread that is waiting on this object's monitor.
`final void`
`notifyAll()`
Wakes up all threads that are waiting on this object's monitor.
`String`
`toString()`
Returns a string representation of the object.
`final void`
`wait()`
Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
`final void`
`wait(long timeoutMillis)`
Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
`final void`
`wait(long timeoutMillis, int nanos)`
Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

## Constructor Details

### IIOByteBuffer

public IIOByteBuffer(byte[] data, int offset, int length)
Constructs an `IIOByteBuffer` that references a given byte array, offset, and length.

Parameters:
  `data` - a byte array.
  `offset` - an int offset within the array.
  `length` - an int specifying the length of the data of interest within byte array, in bytes.

## Method Details

### getData

public byte[] getData()
Returns a reference to the byte array. The returned value should be treated as read-only, and only the portion specified by the values of `getOffset` and `getLength` should be used.

Returns:
  a byte array reference.
See Also:
  - `getOffset()`
  - `getLength()`
  - `setData(byte[])`

### setData

public void setData(byte[] data)
Updates the array reference that will be returned by subsequent calls to the `getData` method.

Parameters:
  `data` - a byte array reference containing the new data value.
See Also:
  - `getData()`

### getOffset

public int getOffset()
Returns the offset within the byte array returned by `getData` at which the data of interest start.

Returns:
  an int offset.
See Also:
  - `getData()`
  - `getLength()`
  - `setOffset(int)`

### setOffset

public void setOffset(int offset)
Updates the value that will be returned by subsequent calls to the `getOffset` method.

Parameters:
  `offset` - an int containing the new offset value.
See Also:
  - `getOffset()`

### getLength

public int getLength()
Returns the length of the data of interest within the byte array returned by `getData`.

Returns:
  an int length.
See Also:
  - `getData()`
  - `getOffset()`
  - `setLength(int)`

### setLength

public void setLength(int length)
Updates the value that will be returned by subsequent calls to the `getLength` method.

Parameters:
  `length` - an int containing the new length value.
See Also:
  - `getLength()`