码迷,mamicode.com
首页 > 编程语言 > 详细

javaNio 通道和缓冲区

时间:2018-07-06 11:28:54      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:文件   oca   wrap   快速   ESS   puts   write   span   bsp   

/**
 * 大多数操作系统可以利用虚拟内存将文件或文件一部分映射到内存中,然后这个文件就可以被当做内存数组一样被访问;避免底层IO的开销<p>
 * 【通道】是一种用于磁盘文件的一种抽象;<br>
 * 它使我们可以访问诸如内存映射,文件加锁机制以及文件间快速数据传递等特性;
*@date:2018年7月5日
*@author:zhangfs


*/
public class GetChannel {

    private static final int BSIZE=1024;
    public static void main(String[] args) throws IOException {
        
        //
        FileChannel fileChannel=new FileOutputStream("data.txt").getChannel();
        fileChannel.write( ByteBuffer.wrap("hello".getBytes()));//warp将已存在的数组包装到butebuffer中;
        fileChannel.close();
        //可读可写
        fileChannel=new RandomAccessFile("data.txt", "rw").getChannel();
        fileChannel.position(fileChannel.size());//移动到filechannel最后
        fileChannel.write(ByteBuffer.wrap(" world".getBytes()));
        fileChannel.close();
        //
        fileChannel=new FileInputStream("data.txt").getChannel();
        ByteBuffer buffer=ByteBuffer.allocate(BSIZE);
        fileChannel.read(buffer);
        buffer.flip();//让别人读取字符的准备;有利于获取最大速度
        while(buffer.hasRemaining()) {
            printnb((char)buffer.get());
        }
        
    }
}

 

javaNio 通道和缓冲区

标签:文件   oca   wrap   快速   ESS   puts   write   span   bsp   

原文地址:https://www.cnblogs.com/zhangfengshi/p/9272308.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!