public class NonBlockingInputStreamAdapter extends FilterInputStream implements NonBlockingInputStream, Interruptible
in| Constructor and Description |
|---|
NonBlockingInputStreamAdapter(String name,
InputStream in) |
| 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 stream without blocking by the next invocation of a
method for this input stream.
|
void |
close()
Closes this input stream and releases any system resources associated
with the stream.
|
boolean |
hasMoreBytes() |
void |
interrupt() |
void |
noMoreBytes() |
int |
read()
Reads the next byte of data from the input stream.
|
int |
read(byte[] b)
Reads some number of bytes from the input stream and stores them into the
buffer array
b. |
int |
read(byte[] b,
int off,
int len)
Reads up to
len bytes of data from the input stream into an
array of bytes. |
int |
readNonBlocking(byte[] b) |
int |
readNonBlocking(byte[] b,
int off,
int len) |
int |
readNonBlocking(byte[] b,
int off,
int len,
long timeout) |
int |
readNonBlocking(byte[] b,
long timeout) |
long |
skip(long n)
Skips over and discards
n bytes of data from this input
stream. |
mark, markSupported, resetclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitmark, markSupported, resetpublic NonBlockingInputStreamAdapter(String name, InputStream in)
public void interrupt()
throws InterruptException
interrupt in interface InterruptibleInterruptExceptionpublic int read()
throws IOException
NonBlockingInputStreamint in the range 0 to
255. If no byte is available because the end of the stream
has been reached, the value -1 is returned. This method
blocks until input data is available, the end of the stream is detected,
or an exception is thrown.
read in interface NonBlockingInputStreamread in class FilterInputStream-1 if the end of the
stream is reached.IOException - if an I/O error occurs.public int read(byte[] b)
throws IOException
NonBlockingInputStreamb. The number of bytes actually read is
returned as an integer. This method blocks until input data is available,
end of file is detected, or an exception is thrown.
b is zero, then no bytes are read and
0 is returned; otherwise, there is an attempt to read at
least one byte. If no byte is available because the stream is at the end
of the file, the value -1 is returned; otherwise, at least
one byte is read and stored into b.
b[0], the next
one into b[1], and so on. The number of bytes read is, at
most, equal to the length of b. Let k be the number
of bytes actually read; these bytes will be stored in elements
b[0] through b[k-1],
leaving elements b[k] through
b[b.length-1] unaffected.
read(b) method for class InputStream has
the same effect as:
read(b, 0, b.length) read in interface NonBlockingInputStreamread in class FilterInputStreamb - the buffer into which the data is read.-1 if there is no more data because the end of the stream
has been reached.IOException - If the first byte cannot be read for any reason
other than the end of the file, if the input stream has been closed, or
if some other I/O error occurs.InputStream.read(byte[], int, int)public int read(byte[] b,
int off,
int len)
throws IOException
NonBlockingInputStreamlen bytes of data from the input stream into an
array of bytes. An attempt is made to read as many as len
bytes, but a smaller number may be read. The number of bytes actually
read is returned as an integer.
len is zero, then no bytes are read and 0 is
returned; otherwise, there is an attempt to read at least one byte. If no
byte is available because the stream is at end of file, the value
-1 is returned; otherwise, at least one byte is read and
stored into b.
b[off], the next
one into b[off+1], and so on. The number of bytes read is,
at most, equal to len. Let k be the number of bytes
actually read; these bytes will be stored in elements b[off]
through b[off+k-1], leaving elements
b[off+k] through
b[off+len-1] unaffected.
b[0] through b[off] and
elements b[off+len] through b[b.length-1] are
unaffected.
read(b, off, len) method for
class InputStream simply calls the method
read() repeatedly. If the first such call results in an
IOException, that exception is returned from the call to the
read(b, off, len) method. If any
subsequent call to read() results in a
IOException, the exception is caught and treated as if it
were end of file; the bytes read up to that point are stored into
b and the number of bytes read before the exception occurred
is returned. The default implementation of this method blocks until the
requested amount of input data len has been read, end of
file is detected, or an exception is thrown. Subclasses are encouraged to
provide a more efficient implementation of this method.read in interface NonBlockingInputStreamread in class FilterInputStreamb - the buffer into which the data is read.off - the start offset in array b at which the data is
written.len - 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 the first byte cannot be read for any reason
other than end of file, or if the input stream has been closed, or if
some other I/O error occurs.InputStream.read()public long skip(long n)
throws IOException
NonBlockingInputStreamn bytes of data from this input
stream. 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,
the skip method for class InputStream always returns 0,
and no bytes are skipped. Subclasses may handle the negative value
differently.
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.skip in interface NonBlockingInputStreamskip in class FilterInputStreamn - the number of bytes to be skipped.IOException - if the stream does not support seek, or if some
other I/O error occurs.public int available()
throws IOException
NonBlockingInputStreamInputStream will return
the total number of bytes in the stream, many will not. It is never
correct to use the return value of this method to allocate a buffer
intended to hold all data in this stream.
IOException if this input stream has been closed by invoking the
NonBlockingInputStream.close() method.
available method for class InputStream always returns
0.
available in interface NonBlockingInputStreamavailable in class FilterInputStream0 when it
reaches the end of the input stream.IOException - if an I/O error occurs.public int readNonBlocking(byte[] b,
long timeout)
throws IOException
readNonBlocking in interface NonBlockingInputStreamIOExceptionpublic int readNonBlocking(byte[] b,
int off,
int len,
long timeout)
throws IOException
readNonBlocking in interface NonBlockingInputStreamIOExceptionpublic int readNonBlocking(byte[] b)
throws IOException
readNonBlocking in interface NonBlockingInputStreamIOExceptionpublic int readNonBlocking(byte[] b,
int off,
int len)
throws IOException
readNonBlocking in interface NonBlockingInputStreamIOExceptionpublic void noMoreBytes()
noMoreBytes in interface NonBlockingInputStreampublic boolean hasMoreBytes()
hasMoreBytes in interface NonBlockingInputStreampublic void close()
throws IOException
NonBlockingInputStreamclose method of InputStream does nothing.close in interface Closeableclose in interface AutoCloseableclose in interface NonBlockingInputStreamclose in class FilterInputStreamIOException - if an I/O error occurs.Copyright © 2021 vpc open source initiative. All rights reserved.