public class LengthDelimitedDecoder extends AbstractContentDecoder implements FileContentDecoderContent 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
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.
All Methods Instance Methods Concrete Methods Modifier and Type Method Description
read(ByteBuffer dst)Reads a portion of content from the underlying channel
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.
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
public int read(ByteBuffer dst) throws IOExceptionDescription copied from interface:
ContentDecoderReads a portion of content from the underlying channel
public long transfer(FileChannel dst, long position, long count) throws IOExceptionDescription copied from interface:
FileContentDecoderTransfers 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.
- Specified by:
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
- The number of bytes, possibly zero, that were actually transferred
IOException- if some I/O error occurs.