This interface extends ReadableByteChannel and adds two additional read( ) methods that read bytes for a channel and "scatter" them to an array (or subarray) of buffers. These methods are passed an array of ByteBuffer objects, and, optionally , an offset and length that define the region of the array to be used. The read( ) method attempts to read enough bytes from the channel to fill each of the specified buffers in the order in which they appear in the buffer array (the "scattering" process is actually much more orderly and linear than the name implies). The return value of the method is the number of bytes actually read, which may be different than the sum of the remaining bytes in the buffers. See ReadableByteChannel for a discussion of exceptions and thread-safety that apply to these read( ) methods as well. Figure 13-36. java.nio.channels.ScatteringByteChannelpublic interface ScatteringByteChannel extends ReadableByteChannel { // Public Instance Methods long read (java.nio.ByteBuffer[ ] dsts ) throws java.io.IOException; long read (java.nio.ByteBuffer[ ] dsts , int offset , int length ) throws java.io.IOException; } ImplementationsDatagramChannel , FileChannel , Pipe.SourceChannel , SocketChannel |