MappedByteBuffer
is a subclass of ByteBuffer
that represents a memory-mapped region of a file. It allows you to read and write file contents directly in memory, enabling fast, random access to files—especially large ones.
- Part of Java’s NIO (New I/O) system
- Maps a region of a file into memory
- Changes to the buffer can reflect in the file and vice versa
- Useful in large file processing, database engines, and inter-process communication
Commonly Used Methods

Modes of Mapping (FileChannel.MapMode)

Simple Program: Reading a File with MappedByteBuffer
import java.io.RandomAccessFile; import java.nio.MappedByteBuffer; import java.nio.channels.FileChannel; public class SimpleMappedByteBufferExample { public static void main(String[] args) throws Exception { RandomAccessFile file = new RandomAccessFile("sample.txt", "r"); FileChannel channel = file.getChannel(); MappedByteBuffer buffer = channel.map(FileChannel.MapMode.READ_ONLY, 0, channel.size()); while (buffer.hasRemaining()) { System.out.print((char) buffer.get()); } channel.close(); file.close(); } }
The MappedByteBuffer
class in Java NIO is a specialized type of ByteBuffer
that allows a portion of a file to be memory-mapped, meaning it is loaded directly into memory for fast, efficient, and random-access I/O. This technique bridges the gap between file I/O and memory operations, allowing applications to read and write files as if they were working with arrays.
Created via the FileChannel.map()
method, MappedByteBuffer
offers several advantages:
- High-speed access to large files without repeated I/O system calls,
- Enables modifying files directly in memory, improving performance,
- Suitable for memory-mapped file systems, large datasets, and data caching.
It also supports options such as READ_ONLY
, READ_WRITE
, and PRIVATE
(copy-on-write), giving developers control over how the memory-mapped region behaves.