public interface

ScatteringByteChannel

implements ReadableByteChannel
java.nio.channels.ScatteringByteChannel
Known Indirect Subclasses

Class Overview

The interface for channels that can read data into a set of buffers in a single operation. The corresponding interface for writes is GatheringByteChannel.

Summary

Public Methods
abstract long read(ByteBuffer[] buffers, int offset, int length)
Reads bytes from this channel and stores them in a subset of the specified array of buffers.
abstract long read(ByteBuffer[] buffers)
Reads bytes from this channel into the specified array of buffers.
[Expand]
Inherited Methods
From interface java.io.Closeable
From interface java.nio.channels.Channel
From interface java.nio.channels.ReadableByteChannel

Public Methods

public abstract long read (ByteBuffer[] buffers, int offset, int length)

Since: API Level 1

Reads bytes from this channel and stores them in a subset of the specified array of buffers. The subset is defined by offset and length, indicating the first buffer and the number of buffers to use. This method attempts to read as many bytes as can be stored in the buffer subset from the channel and returns the number of bytes actually read.

If a read operation is in progress, subsequent threads will block until the read is completed and will then contend for the ability to read.

Parameters
buffers the array of byte buffers into which the bytes will be copied.
offset the index of the first buffer to store bytes in.
length the maximum number of buffers to store bytes in.
Returns
  • the number of bytes actually read.
Throws
AsynchronousCloseException if the channel is closed by another thread during this read operation.
ClosedByInterruptException if another thread interrupts the calling thread while the operation is in progress. The interrupt state of the calling thread is set and the channel is closed.
ClosedChannelException if the channel is closed.
IndexOutOfBoundsException if offset < 0 or length < 0, or if offset + length is greater than the size of buffers.
IOException if another I/O error occurs; details are in the message.
NonWritableChannelException if the channel has not been opened in a mode that permits reading.

public abstract long read (ByteBuffer[] buffers)

Since: API Level 1

Reads bytes from this channel into the specified array of buffers.

This method is equivalent to read(buffers, 0, buffers.length);

Parameters
buffers the array of byte buffers to store the bytes being read.
Returns
  • the number of bytes actually read.
Throws
AsynchronousCloseException if the channel is closed by another thread during this read operation.
ClosedByInterruptException if another thread interrupts the calling thread while the operation is in progress. The interrupt state of the calling thread is set and the channel is closed.
ClosedChannelException if the channel is closed.
IOException if another I/O error occurs; details are in the message.
NonWritableChannelException if the channel has not been opened in a mode that permits reading.