Class Overview
Content decoder that cuts off after a defined number of bytes. This class
is used to receive content of HTTP messages where the end of the content
entity is determined by the value of the Content-Length header
.
Entities transferred using this stream can be maximum MAX_VALUE
long.
This decoder is optimized to transfer data directly from the underlying
I/O session's channel to a FileChannel, whenever
possible avoiding intermediate buffering in the session buffer.
Summary
Public Methods |
int
|
read(ByteBuffer dst)
Reads a portion of content from the underlying channel
|
String
|
toString()
|
long
|
transfer(FileChannel dst, long position, long count)
Transfers a portion of entity content from the underlying network channel
into the given file channel.
|
Public Constructors
Public Methods
public
int
read
(ByteBuffer dst)
Reads a portion of content from the underlying channel
Parameters
dst
| The buffer into which entity content is to be transferred |
Returns
- The number of bytes read, possibly zero, or -1 if the
channel has reached end-of-stream
public
long
transfer
(FileChannel dst, long position, long count)
Transfers a portion of entity content from the underlying network channel
into the given file channel.
Warning: Many implementations cannot write beyond the length of the file.
If the position exceeds the channel's size, some implementations
may throw an IOException.
Parameters
dst
| the target FileChannel to transfer data into. |
position
| The position within the file at which the transfer is to begin;
must be non-negative.
Must be less than or equal to the size of the file |
count
| The maximum number of bytes to be transferred; must be
non-negative |
Returns
- The number of bytes, possibly zero,
that were actually transferred