@InterfaceAudience.Public
 @InterfaceStability.Evolving
public interface ByteBufferPositionedReadable
ByteBuffer rather than a byte[].PositionedReadable, 
ByteBufferReadable| Modifier and Type | Method and Description | 
|---|---|
| int | read(long position,
    ByteBuffer buf)Reads up to  buf.remaining()bytes into buf from a given position
 in the file and returns the number of bytes read. | 
| void | readFully(long position,
         ByteBuffer buf)Reads  buf.remaining()bytes into buf from a given position in
 the file or until the end of the data was reached before the read
 operation completed. | 
int read(long position,
         ByteBuffer buf)
  throws IOException
buf.remaining() bytes into buf from a given position
 in the file and returns the number of bytes read. Callers should use
 buf.limit(...) to control the size of the desired read and
 buf.position(...) to control the offset into the buffer the data
 should be written to.
 
 After a successful call, buf.position() will be advanced by the
 number of bytes read and buf.limit() will be unchanged.
 
 In the case of an exception, the state of the buffer (the contents of the
 buffer, the buf.position(), the buf.limit(), etc.) is
 undefined, and callers should be prepared to recover from this
 eventuality.
 
 Callers should use StreamCapabilities.hasCapability(String) with
 StreamCapabilities.PREADBYTEBUFFER to check if the underlying
 stream supports this interface, otherwise they might get a
 UnsupportedOperationException.
 
Implementations should treat 0-length requests as legitimate, and must not signal an error upon their receipt.
This does not change the current offset of a file, and is thread-safe.
position - position within filebuf - the ByteBuffer to receive the results of the read operation.IOException - if there is some error performing the readvoid readFully(long position,
               ByteBuffer buf)
        throws IOException
buf.remaining() bytes into buf from a given position in
 the file or until the end of the data was reached before the read
 operation completed. Callers should use buf.limit(...) to
 control the size of the desired read and buf.position(...) to
 control the offset into the buffer the data should be written to.
 
 This operation provides similar semantics to
 read(long, ByteBuffer), the difference is that this method is
 guaranteed to read data until the ByteBuffer is full, or until
 the end of the data stream is reached.
position - position within filebuf - the ByteBuffer to receive the results of the read operation.IOException - if there is some error performing the readEOFException - the end of the data was reached before
 the read operation completedread(long, ByteBuffer)Copyright © 2025 Apache Software Foundation. All rights reserved.