日期:2014-05-20  浏览次数:20599 次

新手请教ByteBuffer
ByteBuffer get(byte[] dst) 
  相对批量 get 方法。 

 ByteBuffer get(byte[] dst, int offset, int length) 
  相对批量 get 方法。 

abstract byte get(int index) 
  绝对 get 方法。 

上面内容来自于java API文档,请问什么是“绝对”方法,什么是“相对”方法?

以上三个方法要么只读取一个字节,要么读取全部字节。我想读取部分字节,怎么做到?用第三个方法去实现?那样会不会效率太低了?

------解决方案--------------------
可以这样做的吧?
Java code

//待读取数据的ByteBuffer bb
ByteBuffer bb = ByteBuffer.allocate(1024);
//起点位置 begin
bb.position(begin);
//终点位置 end
bb.limit(end);
//读取
byte [] b = new byte[end - begin];
bb.get(b);

------解决方案--------------------
先调用position(int i)方法,到你想开始的地方,然后开始get,这个是其父类Buffer的方法。感觉你说的是这个问题吧