Class SSLInputStream
- All Implemented Interfaces:
Closeable,AutoCloseable
- Direct Known Subclasses:
HandshakeIODataStream,SSLBufferedInput,SSLStreamedInput
public abstract class SSLInputStream extends InputStream
-
Constructor Summary
Constructors Constructor Description SSLInputStream() -
Method Summary
Modifier and Type Method Description abstract intavailable()Returns an estimated number of bytes that can be read or skipped without blocking for more input.abstract intread()Reads the following byte value.intread(byte[] b, int off, int len)Reads up tobyteCountbytes from this stream and stores them in the byte arraybufferstarting atbyteOffset.byte[]read(int length)Returns the vector of opaque values of specified length;intreadUint16()Reads and returns uint16 value.intreadUint24()Reads and returns uint24 value.longreadUint32()Reads and returns uint32 value.longreadUint64()Reads and returns uint64 value.intreadUint8()Reads and returns uint8 value.
-
Constructor Details
-
SSLInputStream
public SSLInputStream()
-
-
Method Details
-
available
Description copied from class:InputStreamReturns an estimated number of bytes that can be read or skipped without blocking for more input.Note that this method provides such a weak guarantee that it is not very useful in practice.
Firstly, the guarantee is "without blocking for more input" rather than "without blocking": a read may still block waiting for I/O to complete — the guarantee is merely that it won't have to wait indefinitely for data to be written. The result of this method should not be used as a license to do I/O on a thread that shouldn't be blocked.
Secondly, the result is a conservative estimate and may be significantly smaller than the actual number of bytes available. In particular, an implementation that always returns 0 would be correct. In general, callers should only use this method if they'd be satisfied with treating the result as a boolean yes or no answer to the question "is there definitely data ready?".
Thirdly, the fact that a given number of bytes is "available" does not guarantee that a read or skip will actually read or skip that many bytes: they may read or skip fewer.
It is particularly important to realize that you must not use this method to size a container and assume that you can read the entirety of the stream without needing to resize the container. Such callers should probably write everything they read to a
ByteArrayOutputStreamand convert that to a byte array. Alternatively, if you're reading from a file,File.length()returns the current length of the file (though assuming the file's length can't change may be incorrect, reading a file is inherently racy).The default implementation of this method in
InputStreamalways returns 0. Subclasses should override this method if they are able to indicate the number of bytes available.- Overrides:
availablein classInputStream- Returns:
- the estimated number of bytes available
- Throws:
IOException- if this stream is closed or an error occurs
-
read
Reads the following byte value. Note that in the case of reaching of the end of the data this methods throws the exception, not return -1. The type of exception depends on implementation. It was done for simplifying and speeding up of processing of such cases.- Specified by:
readin classInputStream- Throws:
IOException- if the stream is closed or another IOException occurs.- See Also:
SSLStreamedInput.read(),SSLBufferedInput.read(),HandshakeIODataStream.read()
-
readUint8
Reads and returns uint8 value.- Throws:
IOException
-
readUint16
Reads and returns uint16 value.- Throws:
IOException
-
readUint24
Reads and returns uint24 value.- Throws:
IOException
-
readUint32
Reads and returns uint32 value.- Throws:
IOException
-
readUint64
Reads and returns uint64 value.- Throws:
IOException
-
read
Returns the vector of opaque values of specified length;- Parameters:
length- - the length of the vector to be read.- Returns:
- the read data
- Throws:
IOException- if read operation could not be finished.
-
read
Description copied from class:InputStreamReads up tobyteCountbytes from this stream and stores them in the byte arraybufferstarting atbyteOffset. Returns the number of bytes actually read or -1 if the end of the stream has been reached.- Overrides:
readin classInputStream- Throws:
IOException- if the stream is closed or another IOException occurs.
-