Package com.itextpdf.io.source
Class RandomAccessSourceFactory
java.lang.Object
com.itextpdf.io.source.RandomAccessSourceFactory
Factory to create
IRandomAccessSource
objects based on various types of sources
-
Constructor Summary
ConstructorDescriptionCreates a factory that will give preference to accessing the underling data source using memory mapped files -
Method Summary
Modifier and TypeMethodDescriptioncreateBestSource
(String filename) Creates aIRandomAccessSource
based on a filename string.createBestSource
(FileChannel channel) Creates aIRandomAccessSource
based on memory mapping a file channel.createRanged
(IRandomAccessSource source, long[] ranges) createSource
(byte[] data) Creates aIRandomAccessSource
based on a byte arraycreateSource
(InputStream inputStream) Creates aIRandomAccessSource
based on anInputStream
.createSource
(URL url) Creates aIRandomAccessSource
based on a URL.extractOrCreateSource
(InputStream inputStream) Creates or extracts aIRandomAccessSource
based on anInputStream
.setExclusivelyLockFile
(boolean exclusivelyLockFile) setForceRead
(boolean forceRead) Determines whether the full content of the source will be read into memorystatic void
setForceReadDefaultValue
(boolean forceRead) Determines the default value for the forceRead flagsetUsePlainRandomAccess
(boolean usePlainRandomAccess) Determines whetherRandomAccessFile
should be used as the primary data access mechanism
-
Constructor Details
-
RandomAccessSourceFactory
public RandomAccessSourceFactory()Creates a factory that will give preference to accessing the underling data source using memory mapped files
-
-
Method Details
-
setForceReadDefaultValue
public static void setForceReadDefaultValue(boolean forceRead) Determines the default value for the forceRead flag- Parameters:
-
forceRead
- true if by default the full content will be read, false otherwise
-
setForceRead
Determines whether the full content of the source will be read into memory- Parameters:
-
forceRead
- true if the full content will be read, false otherwise - Returns:
- this object (this allows chaining of method calls)
-
setUsePlainRandomAccess
Determines whetherRandomAccessFile
should be used as the primary data access mechanism- Parameters:
-
usePlainRandomAccess
- whetherRandomAccessFile
should be used as the primary data access mechanism - Returns:
- this object (this allows chaining of method calls)
-
setExclusivelyLockFile
-
createSource
Creates aIRandomAccessSource
based on a byte array- Parameters:
-
data
- the byte array - Returns:
-
the newly created
IRandomAccessSource
-
createSource
- Throws:
-
IOException
-
createSource
Creates aIRandomAccessSource
based on a URL. The data available at the URL is read into memory and used as the source for theIRandomAccessSource
- Parameters:
-
url
- the url to read from - Returns:
-
the newly created
IRandomAccessSource
- Throws:
-
IOException
- in case of any I/O error.
-
extractOrCreateSource
Creates or extracts aIRandomAccessSource
based on anInputStream
.If the InputStream is an instance of
RASInputStream
then extracts the source from it. Otherwise The full content of the InputStream is read into memory and used as the source for theIRandomAccessSource
- Parameters:
-
inputStream
- the stream to read from - Returns:
-
the newly created or extracted
IRandomAccessSource
- Throws:
-
IOException
- in case of any I/O error.
-
createSource
Creates aIRandomAccessSource
based on anInputStream
.The full content of the InputStream is read into memory and used as the source for the
IRandomAccessSource
- Parameters:
-
inputStream
- the stream to read from - Returns:
-
the newly created
IRandomAccessSource
- Throws:
-
IOException
- in case of any I/O error.
-
createBestSource
Creates aIRandomAccessSource
based on a filename string. If the filename describes a URL, a URL based source is created If the filename describes a file on disk, the contents may be read into memory (ifforceRead
is true), opened using memory mapped file channel (if usePlainRandomAccess is false), or opened usingRandomAccessFile
access (if usePlainRandomAccess is true) This call will automatically fail over to usingRandomAccessFile
if the memory map operation fails- Parameters:
-
filename
- the name of the file or resource to create theIRandomAccessSource
for - Returns:
-
the newly created
IRandomAccessSource
- Throws:
-
IOException
- in case of any I/O error
-
createBestSource
Creates aIRandomAccessSource
based on memory mapping a file channel. Unless you are explicitly working with aFileChannel
already, it is better to usecreateBestSource(String)
. If the file is large, it will be opened using a paging strategy.- Parameters:
-
channel
- the name of the file or resource to create theIRandomAccessSource
for - Returns:
-
the newly created
IRandomAccessSource
- Throws:
-
IOException
- in case of any I/O error
-
createRanged
public IRandomAccessSource createRanged(IRandomAccessSource source, long[] ranges) throws IOException - Throws:
-
IOException
-