首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Java nio(2)

2012-10-29 
Java nio(二)一、各种缓冲区:所有的缓冲区都继承了Buffer,Buffer类定义了所有缓冲区共有的基本特征,缓冲区

Java nio(二)
一、各种缓冲区:
所有的缓冲区都继承了Buffer,Buffer类定义了所有缓冲区共有的基本特征,缓冲区存储了制定类型的元素序列有:ByteBuffer、CharBuffer、ShortBuffer、IntBuffer、LongBuffer、FloatBuffer、DoubleBuffer。
我们需要知道这些基本类型占用存储空间与Byte的对应关系:
char 2 bytes,int 4 bytes,double 8 bytes
二、我们看看Buffer三个重要的概念以及他们之间的关系:
capacity 所能存方特定类型值得最大数量
limit 第一个不能读取或写入的索引位置
position 下一个要读取或写入的缓冲区索引位置
理解这三者的关系是对缓冲区操作的关键:
新创建的一个缓冲区,position=0,limit=capacity
我们可以通过position(int newPosition)和limit(int newLimit)来调整position和limit的值。显然0 =< position =< limit =< capacity,所以我们在设置这个位置
需要小心,以满足这个条件,一般如果同时设置limit和position的时候,下面代码是一个
安全的方法:

    public static void testReadViewBufferWritten()throws Exception{    ByteBuffer bb = ByteBuffer.allocate(100);    FileInputStream fis = new FileInputStream(new File("D:/a.txt"));    FileChannel inputChannel = fis.getChannel();    inputChannel.read(bb);    bb.flip();    CharBuffer cb = bb.asCharBuffer();    for(int i = 0; i < cb.limit();i++)    System.out.print(cb.charAt(i));          fis.close();    }
2 楼 youfengkai 2011-10-04   CharBuffer : 字符缓冲区

热点排行