Package org.apache.axis.transport.http
Class NonBlockingBufferedInputStream
java.lang.Object
java.io.InputStream
org.apache.axis.transport.http.NonBlockingBufferedInputStream
- All Implemented Interfaces:
Closeable
,AutoCloseable
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionint
return the number of bytes available to be read without blockingvoid
close()
disassociate from the underlying input streamint
peek()
Just like read except byte is not removed from the buffer.int
read()
Read a byte from the input stream, blocking if necessary.int
read
(byte[] dest) Read bytes from the input stream.int
read
(byte[] dest, int off, int len) Read a specified number of bytes from the input stream.void
setContentLength
(int value) set the maximum number of bytes allowed to be read from this input stream.void
set the input stream to be used for subsequent readsint
skip
(int len) skip over (and discard) a specified number of bytes in this input streamMethods inherited from class java.io.InputStream
mark, markSupported, nullInputStream, readAllBytes, readNBytes, readNBytes, reset, skip, skipNBytes, transferTo
-
Constructor Details
-
NonBlockingBufferedInputStream
public NonBlockingBufferedInputStream()
-
-
Method Details
-
setInputStream
set the input stream to be used for subsequent reads- Parameters:
in
- the InputStream
-
setContentLength
public void setContentLength(int value) set the maximum number of bytes allowed to be read from this input stream.- Parameters:
value
- the Content Length
-
read
Read a byte from the input stream, blocking if necessary. Internally the data is buffered for efficiency.- Specified by:
read
in classInputStream
- Returns:
- the byte read
- Throws:
IOException
-
read
Read bytes from the input stream. This is guaranteed to return at least one byte or throw an exception. When possible, it will return more bytes, up to the length of the array, as long as doing so would not require waiting on bytes from the input stream.- Overrides:
read
in classInputStream
- Parameters:
dest
- byte array to read into- Returns:
- the number of bytes actually read
- Throws:
IOException
-
read
Read a specified number of bytes from the input stream. This is guaranteed to return at least one byte or throw an execption. When possible, it will return more bytes, up to the length specified, as long as doing so would not require waiting on bytes from the input stream.- Overrides:
read
in classInputStream
- Parameters:
dest
- byte array to read intooff
- starting offset into the byte arraylen
- maximum number of bytes to read- Returns:
- the number of bytes actually read
- Throws:
IOException
-
skip
skip over (and discard) a specified number of bytes in this input stream- Parameters:
len
- the number of bytes to be skipped- Returns:
- the action number of bytes skipped
- Throws:
IOException
-
available
return the number of bytes available to be read without blocking- Overrides:
available
in classInputStream
- Returns:
- the number of bytes
- Throws:
IOException
-
close
disassociate from the underlying input stream- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Overrides:
close
in classInputStream
- Throws:
IOException
-
peek
Just like read except byte is not removed from the buffer. the data is buffered for efficiency. Was added to support multiline http headers. ;-)- Returns:
- the byte read
- Throws:
IOException
-