Class IOResources
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic Content.Source
asContentSource
(Resource resource, ByteBufferPool.Sized bufferPool, long offset, long length) Gets aContent.Source
with a range of the contents of a resource.static InputStream
asInputStream
(Resource resource) Gets anInputStream
with the contents of a resource.static void
copy
(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 RetainableByteBuffer
toRetainableByteBuffer
(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.Sized
to get buffers from.null
means allocate new buffers as needed.- Returns:
- a
RetainableByteBuffer
containing 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.Source
with 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.Sized
to get buffers from.null
means allocate new buffers as needed.offset
- the offset byte from which to read from.length
- the length of the content to read, -1 for the full length.- Returns:
- the
Content.Source
. - Throws:
IllegalArgumentException
- if the resource is a directory or does not exist or there is no way to access its contents.
-
asInputStream
Gets an
InputStream
with 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
- theByteBufferPool
to get buffers from.null
means 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
-