public final class MemoryMappedFileInputStream extends AbstractInputStream
InputStream that utilizes memory mapped files to improve performance. A sliding window of the file is
mapped to memory to avoid mapping the entire file to memory at one time. The size of the sliding buffer is
configurable.
For most operating systems, mapping a file into memory is more expensive than reading or writing a few tens of kilobytes of data. From the standpoint of performance. it is generally only worth mapping relatively large files into memory.
Note: Use of this class does not necessarily obviate the need to use a BufferedInputStream. Depending on the
use case, the use of buffering may still further improve performance. For example:
To build an instance, use MemoryMappedFileInputStream.Builder.
BufferedInputStream s = new BufferedInputStream(new GzipInputStream(
MemoryMappedFileInputStream.builder()
.setPath(path)
.setBufferSize(256 * 1024)
.get()));
should outperform:
new GzipInputStream(new MemoryMappedFileInputStream(path))
GzipInputStream s = new GzipInputStream(
MemoryMappedFileInputStream.builder()
.setPath(path)
.setBufferSize(256 * 1024)
.get());
MemoryMappedFileInputStream.Builder| Modifier and Type | Class and Description |
|---|---|
static class |
MemoryMappedFileInputStream.Builder
Builds a new
MemoryMappedFileInputStream. |
| Modifier and Type | Method and Description |
|---|---|
int |
available() |
static MemoryMappedFileInputStream.Builder |
builder()
Constructs a new
MemoryMappedFileInputStream.Builder. |
void |
close() |
int |
read() |
int |
read(byte[] b,
int off,
int len) |
long |
skip(long n) |
isClosed, setClosedpublic static MemoryMappedFileInputStream.Builder builder()
MemoryMappedFileInputStream.Builder.MemoryMappedFileInputStream.Builder.public int available()
throws java.io.IOException
available in class java.io.InputStreamjava.io.IOExceptionpublic void close()
throws java.io.IOException
close in interface java.io.Closeableclose in interface java.lang.AutoCloseableclose in class AbstractInputStreamjava.io.IOExceptionpublic int read()
throws java.io.IOException
read in class java.io.InputStreamjava.io.IOExceptionpublic int read(byte[] b,
int off,
int len)
throws java.io.IOException
read in class java.io.InputStreamjava.io.IOExceptionpublic long skip(long n)
throws java.io.IOException
skip in class java.io.InputStreamjava.io.IOExceptionCopyright © 2010 - 2025 Adobe. All Rights Reserved