java NIO中的Buffer的array()方法是什么意思?怎么用?

首先我把大量的数据从文件中通过Channel映射到了Buffer中去,我想从Buffer中取数据。array()方法是把文件中的一行变为一个字符数组吗?还是整个文件变为?或者是别的?

你可以使用byte[]构建Buffer,这时你可以用array()方法获取底层byte[]

但是如果你是用别的方法构建的Buffer,array()就不一定有用,先使用hasArray()方法确定一下吧。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-11-04
java NIO中的Buffer的array()方法在能够读和写之前,必须有一个缓冲区,用静态方法 allocate() 来分配缓冲区:
ByteBuffer buffer = ByteBuffer.allocate(1024);
allocate() 方法分配一个具有指定大小的底层数组,并将它包装到一个缓冲区对象中 — 在本例中是一个 ByteBuffer。
还可以将一个现有的数组转换为缓冲区:
byte array[] = new byte[1024];
ByteBuffer buffer = ByteBuffer.wrap(array);
本例使用了 wrap() 方法将一个数组包装为缓冲区。一旦完成包装,底层数据就可以通过缓冲区或者直接访问
相似回答