public interface Input extends Closeable
CryptoInputStream
so that different implementation of input can
be used. The implementation Input interface will usually wraps an input
mechanism such as InputStream
or
ReadableByteChannel
.Modifier and Type | Method and Description |
---|---|
int |
available()
Returns an estimate of the number of bytes that can be read (or skipped
over) from this input without blocking by the next invocation of a method
for this input stream.
|
void |
close()
Closes this input and releases any system resources associated with the
under layer input.
|
int |
read(ByteBuffer dst)
Reads a sequence of bytes from input into the given buffer.
|
int |
read(long position,
byte[] buffer,
int offset,
int length)
Reads up to the specified number of bytes from a given position within a
stream and return the number of bytes read.
|
void |
seek(long position)
Seeks to the given offset from the start of the stream.
|
long |
skip(long n)
Skips over and discards
n bytes of data from this input The
skip method may, for a variety of reasons, end up skipping
over some smaller number of bytes, possibly 0 . |
int available() throws IOException
It is never correct to use the return value of this method to allocate a buffer intended to hold all data in this stream.
0
when
it reaches the end of the input stream.IOException
- if an I/O error occurs.void close() throws IOException
close
in interface AutoCloseable
close
in interface Closeable
IOException
- if an I/O error occurs.int read(ByteBuffer dst) throws IOException
An attempt is made to read up to r bytes from the input, where
r is the number of bytes remaining in the buffer, that is,
dst.remaining()
, at the moment this method is invoked.
Suppose that a byte sequence of length n is read, where 0
<=
n <=
r.
This byte sequence will be transferred into the buffer so that the first
byte in the sequence is at index p and the last byte is at index
p +
n -
1
,
where p is the buffer's position at the moment this method is
invoked. Upon return the buffer's position will be equal to
p +
n; its limit will not have changed.
dst
- The buffer into which bytes are to be transferred.-1
if there is no more data because the end of the
stream has been reached.IOException
- If some other I/O error occurs.int read(long position, byte[] buffer, int offset, int length) throws IOException
position
- the given position within a stream.buffer
- the buffer into which the data is read.offset
- the start offset in array buffer.length
- the maximum number of bytes to read.-1
if there is no more data because the end of the
stream has been reached.IOException
- if an I/O error occurs.void seek(long position) throws IOException
position
- the offset from the start of the stream.IOException
- if an I/O error occurs.long skip(long n) throws IOException
n
bytes of data from this input The
skip
method may, for a variety of reasons, end up skipping
over some smaller number of bytes, possibly 0
. This may
result from any of a number of conditions; reaching end of file before
n
bytes have been skipped is only one possibility. The
actual number of bytes skipped is returned. If n
is
negative, no bytes are skipped.
The skip
method of this class creates a byte array and then
repeatedly reads into it until n
bytes have been read or the
end of the stream has been reached. Subclasses are encouraged to provide
a more efficient implementation of this method. For instance, the
implementation may depend on the ability to seek.
n
- the number of bytes to be skipped.IOException
- if the stream does not support seek, or if some
other I/O error occurs.Copyright © 2016–2022 The Apache Software Foundation. All rights reserved.