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
SeekableInputStream
is 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 long
getPos()
Return the current position in the InputStream.abstract int
read(ByteBuffer buf)
Readbuf.remaining()
bytes of data into aByteBuffer
.abstract void
readFully(byte[] bytes)
Read a byte array of data, from position 0 to the end of the array.abstract void
readFully(byte[] bytes, int start, int len)
Readlen
bytes of data into an array, at positionstart
.abstract void
readFully(ByteBuffer buf)
Readbuf.remaining()
bytes of data into aByteBuffer
.abstract void
seek(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 IOException
Return 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 IOException
Seek 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 IOException
Read 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
EOFException
if 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 IOException
Readlen
bytes of data into an array, at positionstart
.This method will block until len bytes are available to copy into the array, or will throw
EOFException
if 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 thanlen
bytes 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 throwEOFException
if 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()
-
-