Class IOResources
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic Content.SourceasContentSource(Resource resource, ByteBufferPool.Sized bufferPool, long offset, long length) Gets aContent.Sourcewith a range of the contents of a resource.static InputStreamasInputStream(Resource resource) Gets anInputStreamwith the contents of a resource.static voidcopy(Resource resource, Content.Sink sink, ByteBufferPool.Sized bufferPool, long offset, long length, Callback callback) Performs an asynchronous copy of a subset of the contents of a resource to a sink, using the given buffer pool and buffer characteristics.static RetainableByteBuffertoRetainableByteBuffer(Resource resource, ByteBufferPool.Sized bufferPool) Reads the contents of a Resource into a RetainableByteBuffer.
-
Constructor Details
-
IOResources
public IOResources()
-
-
Method Details
-
toRetainableByteBuffer
public static RetainableByteBuffer toRetainableByteBuffer(Resource resource, ByteBufferPool.Sized bufferPool) throws IllegalArgumentException Reads the contents of a Resource into a RetainableByteBuffer.
The resource must not be a directory, must exists and there must be a way to access its contents.
Multiple optimized methods are used to access the resource's contents but if they all fail,
Resource.newInputStream()is used as a fallback.- Parameters:
resource- the resource to be read.bufferPool- theByteBufferPool.Sizedto get buffers from.nullmeans allocate new buffers as needed.- Returns:
- a
RetainableByteBuffercontaining the resource's contents. - Throws:
IllegalArgumentException- if the resource is a directory or does not exist or there is no way to access its contents.
-
asContentSource
public static Content.Source asContentSource(Resource resource, ByteBufferPool.Sized bufferPool, long offset, long length) throws IllegalArgumentException Gets a
Content.Sourcewith a range of the contents of a resource.The resource must not be a directory, must exists and there must be a way to access its contents.
Multiple optimized methods are used to access the resource's contents but if they all fail,
Resource.newInputStream()is used as a fallback.- Parameters:
resource- the resource from which to get aContent.Source.bufferPool- theByteBufferPool.Sizedto get buffers from.nullmeans allocate new buffers as needed.offset- the offset byte of the resource to start from. Must be greater than or equal to 0 and less than the resource length (if known).length- the length of the content to make available, -1 for the full length, otherwise must be greater than 0 and less than or equal to the resource length (if known) minus the offset.- Returns:
- a
Content.Source. - Throws:
IndexOutOfBoundsException- if the offset or length are out of range.IllegalArgumentException- if the resource is a directory or does not exist or there is no way to access its contents.- See Also:
-
asInputStream
Gets an
InputStreamwith the contents of a resource.The resource must not be a directory, must exist and must return non-null to
Resource.newInputStream().- Parameters:
resource- the resource from which to get anInputStream.- Returns:
- the
InputStream. - Throws:
IllegalArgumentException- if the resource is a directory or does not exist orResource.newInputStream()returns null.
-
copy
public static void copy(Resource resource, Content.Sink sink, ByteBufferPool.Sized bufferPool, long offset, long length, Callback callback) throws IllegalArgumentException Performs an asynchronous copy of a subset of the contents of a resource to a sink, using the given buffer pool and buffer characteristics.
The resource must not be a directory, must exist and there must be a way to access its contents.
Multiple optimized methods are used to access the resource's contents but if they all fail,
Content.Source.from(ByteBufferPool.Sized, InputStream, long, long)is used as a fallback to perform thecopy.- Parameters:
resource- the resource to copy from.sink- the sink to copy to.bufferPool- theByteBufferPoolto get buffers from.nullmeans allocate new buffers as needed.offset- the offset byte of the resource to start from.length- the length of the resource's contents to copy, -1 for the full length.callback- the callback to notify when the copy is done.- Throws:
IllegalArgumentException
-