Interface Input
-
- All Superinterfaces:
java.lang.AutoCloseable
,java.io.Closeable
- All Known Implementing Classes:
ChannelInput
,StreamInput
public interface Input extends java.io.Closeable
The Input interface abstract the input source ofCryptoInputStream
so that different implementation of input can be used. The implementation Input interface will usually wraps an input mechanism such asInputStream
orReadableByteChannel
.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method 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(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.int
read(java.nio.ByteBuffer dst)
Reads a sequence of bytes from input into the given buffer.void
seek(long position)
Seeks to the given offset from the start of the stream.long
skip(long n)
Skips over and discardsn
bytes of data from this input Theskip
method may, for a variety of reasons, end up skipping over some smaller number of bytes, possibly0
.
-
-
-
Method Detail
-
available
int available() throws java.io.IOException
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. The next invocation might be the same thread or another thread. A single read or skip of this many bytes will not block, but may read or skip fewer bytes.It is never correct to use the return value of this method to allocate a buffer intended to hold all data in this stream.
- Returns:
- an estimate of the number of bytes that can be read (or skipped
over) from this input stream without blocking or
0
when it reaches the end of the input stream. - Throws:
java.io.IOException
- if an I/O error occurs.
-
close
void close() throws java.io.IOException
Closes this input and releases any system resources associated with the under layer input.- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Throws:
java.io.IOException
- if an I/O error occurs.
-
read
int read(java.nio.ByteBuffer dst) throws java.io.IOException
Reads a sequence of bytes from input into the given buffer.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.- Parameters:
dst
- The buffer into which bytes are to be transferred.- Returns:
- the total number of bytes read into the buffer, or
-1
if there is no more data because the end of the stream has been reached. - Throws:
java.io.IOException
- If some other I/O error occurs.
-
read
int read(long position, byte[] buffer, int offset, int length) throws java.io.IOException
Reads up to the specified number of bytes from a given position within a stream and return the number of bytes read. This does not change the current offset of the stream and is thread-safe. An implementation may not support positioned read. If the implementation doesn't support positioned read, it throws UnsupportedOperationException.- Parameters:
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.- Returns:
- the total number of bytes read into the buffer, or
-1
if there is no more data because the end of the stream has been reached. - Throws:
java.io.IOException
- if an I/O error occurs.
-
seek
void seek(long position) throws java.io.IOException
Seeks to the given offset from the start of the stream. The next read() will be from that location. An implementation may not support seek. If the implementation doesn't support seek, it throws UnsupportedOperationException.- Parameters:
position
- the offset from the start of the stream.- Throws:
java.io.IOException
- if an I/O error occurs.
-
skip
long skip(long n) throws java.io.IOException
Skips over and discardsn
bytes of data from this input Theskip
method may, for a variety of reasons, end up skipping over some smaller number of bytes, possibly0
. This may result from any of a number of conditions; reaching end of file beforen
bytes have been skipped is only one possibility. The actual number of bytes skipped is returned. Ifn
is negative, no bytes are skipped.The
skip
method of this class creates a byte array and then repeatedly reads into it untiln
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.- Parameters:
n
- the number of bytes to be skipped.- Returns:
- the actual number of bytes skipped.
- Throws:
java.io.IOException
- if the stream does not support seek, or if some other I/O error occurs.
-
-