java输入输出性能提升(高性能I/O)

在java各种输入输出流性能由低到高排序:

     -RandomAccessFile

     -其他各种输入输出流

     -带缓存的流:BufferedInputStream,BufferedOutputStream

     -内存映射

内存映射是什么?

       在操作系统中可以利用虚拟内存技术奖一个文件或者文件的一部分,“映射”到内存中,然后,这个文件就可以当做是内存数组     一样来访问,比传统的文件操作要快得多。

如何使用内存映射:

1、从文件中获得一个通道(channel)

     在FileInputStream、FileOutputStream、RandomAccessFile中可以调用getChannel()方法来获得

2、调用FileChannel类的map()方法从通道中获得MappedByteBuffer。可以指定三种模型:

       FileChannel.MapMode.READ_ONLY

       FileChannel.MapMode.READ_WRITE

       FileChannel.MapMode.READ_PRIVATE

3、使用ByteBuffer,Buffer超类的读写方法读写数据。

示例代码如下:

FileInputStream in = new FileInputStream("test.text");
FileChannel channel = in.getChannel();
MappedByteBuffer buffer = channel.map(FileChannel.MapMode.READ_WRITE,0,length);
while(buffer.hasRemaining())
{
    byte b = buffer.get();
}

你可能感兴趣的:(Java)