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();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值