Class SeekableInputStream
- java.lang.Object
-
- java.io.InputStream
-
- org.apache.parquet.io.SeekableInputStream
-
- All Implemented Interfaces:
Closeable,AutoCloseable
- Direct Known Subclasses:
DelegatingSeekableInputStream
public abstract class SeekableInputStream extends InputStream
SeekableInputStreamis an interface with the methods needed by Parquet to read data from a file or Hadoop data stream.
-
-
Constructor Summary
Constructors Constructor Description SeekableInputStream()
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description abstract longgetPos()Return the current position in the InputStream.abstract intread(ByteBuffer buf)Readbuf.remaining()bytes of data into aByteBuffer.abstract voidreadFully(byte[] bytes)Read a byte array of data, from position 0 to the end of the array.abstract voidreadFully(byte[] bytes, int start, int len)Readlenbytes of data into an array, at positionstart.abstract voidreadFully(ByteBuffer buf)Readbuf.remaining()bytes of data into aByteBuffer.abstract voidseek(long newPos)Seek to a new position in the InputStream.-
Methods inherited from class java.io.InputStream
available, close, mark, markSupported, nullInputStream, read, read, read, readAllBytes, readNBytes, readNBytes, reset, skip, transferTo
-
-
-
-
Method Detail
-
getPos
public abstract long getPos() throws IOExceptionReturn the current position in the InputStream.- Returns:
- current position in bytes from the start of the stream
- Throws:
IOException- If the underlying stream throws IOException
-
seek
public abstract void seek(long newPos) throws IOExceptionSeek to a new position in the InputStream.- Parameters:
newPos- the new position to seek to- Throws:
IOException- If the underlying stream throws IOException
-
readFully
public abstract void readFully(byte[] bytes) throws IOExceptionRead a byte array of data, from position 0 to the end of the array.This method is equivalent to
read(bytes, 0, bytes.length).This method will block until len bytes are available to copy into the array, or will throw
EOFExceptionif the stream ends before the array is full.- Parameters:
bytes- a byte array to fill with data from the stream- Throws:
IOException- If the underlying stream throws IOExceptionEOFException- If the stream has fewer bytes left than are needed to fill the array,bytes.length
-
readFully
public abstract void readFully(byte[] bytes, int start, int len) throws IOExceptionReadlenbytes of data into an array, at positionstart.This method will block until len bytes are available to copy into the array, or will throw
EOFExceptionif the stream ends before the array is full.- Parameters:
bytes- a byte array to fill with data from the streamstart- the starting position in the byte array for datalen- the length of bytes to read into the byte array- Throws:
IOException- If the underlying stream throws IOExceptionEOFException- If the stream has fewer thanlenbytes left
-
read
public abstract int read(ByteBuffer buf) throws IOException
Readbuf.remaining()bytes of data into aByteBuffer.This method will copy available bytes into the buffer, reading at most
buf.remaining()bytes. The number of bytes actually copied is returned by the method, or -1 is returned to signal that the end of the underlying stream has been reached.- Parameters:
buf- a byte buffer to fill with data from the stream- Returns:
- the number of bytes read or -1 if the stream ended
- Throws:
IOException- If the underlying stream throws IOException
-
readFully
public abstract void readFully(ByteBuffer buf) throws IOException
Readbuf.remaining()bytes of data into aByteBuffer.This method will block until
buf.remaining()bytes are available to copy into the buffer, or will throwEOFExceptionif the stream ends before the buffer is full.- Parameters:
buf- a byte buffer to fill with data from the stream- Throws:
IOException- If the underlying stream throws IOExceptionEOFException- If the stream has fewer bytes left than are needed to fill the buffer,buf.remaining()
-
-