Package org.apache.commons.io.input
Class MemoryMappedFileInputStream
- java.lang.Object
-
- java.io.InputStream
-
- org.apache.commons.io.input.MemoryMappedFileInputStream
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable
public final class MemoryMappedFileInputStream extends java.io.InputStreamAnInputStreamthat 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());- Since:
- 2.12.0
- See Also:
MemoryMappedFileInputStream.Builder
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classMemoryMappedFileInputStream.BuilderBuilds a newMemoryMappedFileInputStream.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description intavailable()static MemoryMappedFileInputStream.Builderbuilder()Constructs a newMemoryMappedFileInputStream.Builder.voidclose()intread()intread(byte[] b, int off, int len)longskip(long n)
-
-
-
Method Detail
-
builder
public static MemoryMappedFileInputStream.Builder builder()
Constructs a newMemoryMappedFileInputStream.Builder.- Returns:
- a new
MemoryMappedFileInputStream.Builder. - Since:
- 2.12.0
-
available
public int available() throws java.io.IOException- Overrides:
availablein classjava.io.InputStream- Throws:
java.io.IOException
-
close
public void close() throws java.io.IOException- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Overrides:
closein classjava.io.InputStream- Throws:
java.io.IOException
-
read
public int read() throws java.io.IOException- Specified by:
readin classjava.io.InputStream- Throws:
java.io.IOException
-
read
public int read(byte[] b, int off, int len) throws java.io.IOException- Overrides:
readin classjava.io.InputStream- Throws:
java.io.IOException
-
skip
public long skip(long n) throws java.io.IOException- Overrides:
skipin classjava.io.InputStream- Throws:
java.io.IOException
-
-