@InterfaceAudience.Public
 @InterfaceStability.Evolving
public interface PositionedReadable
Seekable.getPos() visible.| Modifier and Type | Method and Description | 
|---|---|
| default int | maxReadSizeForVectorReads()What is the largest size that we should group ranges together as? | 
| default int | minSeekForVectorReads()What is the smallest reasonable seek? | 
| int | read(long position,
    byte[] buffer,
    int offset,
    int length)Read up to the specified number of bytes, from a given
 position within a file, and return the number of bytes read. | 
| void | readFully(long position,
         byte[] buffer)Read number of bytes equal to the length of the buffer, from a given
 position within a file. | 
| void | readFully(long position,
         byte[] buffer,
         int offset,
         int length)Read the specified number of bytes, from a given
 position within a file. | 
| default void | readVectored(List<? extends org.apache.hadoop.fs.FileRange> ranges,
            IntFunction<ByteBuffer> allocate)Read fully a list of file ranges asynchronously from this file. | 
int read(long position,
         byte[] buffer,
         int offset,
         int length)
  throws IOException
position - position within filebuffer - destination bufferoffset - offset in the bufferlength - number of bytes to readIOException - IO problems.void readFully(long position,
               byte[] buffer,
               int offset,
               int length)
        throws IOException
position - position within filebuffer - destination bufferoffset - offset in the bufferlength - number of bytes to readIOException - IO problems.EOFException - the end of the data was reached before
 the read operation completedvoid readFully(long position,
               byte[] buffer)
        throws IOException
position - position within filebuffer - destination bufferIOException - IO problems.EOFException - the end of the data was reached before
 the read operation completeddefault int minSeekForVectorReads()
default int maxReadSizeForVectorReads()
default void readVectored(List<? extends org.apache.hadoop.fs.FileRange> ranges, IntFunction<ByteBuffer> allocate) throws IOException
The position returned by getPos() after readVectored() is undefined.
If a file is changed while the readVectored() operation is in progress, the output is undefined. Some ranges may have old data, some may have new and some may have both.
While a readVectored() operation is in progress, normal read api calls may block.
ranges - the byte ranges to readallocate - the function to allocate ByteBufferIOException - any IOE.Copyright © 2023 Apache Software Foundation. All rights reserved.