《Java编程思想》中对内存映射文件有详细的介绍,此处仅做简单记录和总结。内存映射文件允许创建和修改因为太大而不能放入内存的文件。
1. 内存映射文件简单实例
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;
public class LargeMappedFiles {
private static int LENGTH = 0x0000FFF;
public static void main(String[] args) throws IOException{
MappedByteBuffer out = new RandomAccessFile("test.dat", "rw")
.getChannel()
.map(FileChannel.MapMode.READ_WRITE, 0, LENGTH);
for(int i = 0; i < LENGTH; i++) {
out.put((byte)'x');
}
for(int i = LENGTH/2; i < LENGTH/2 + 6; i++) {
System.out.print((char)out.get(i));
}
}
}