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

2025-05-19 15:18:27
推荐回答(2个)
回答1:

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

但是如果你是用别的方法构建的Buffer,array()就不一定有用,先使用hasArray()方法确定一下吧。

回答2:

java NIO中的Buffer的array()方法在能够读和写之前,必须有一个缓冲区,用静态方法 allocate() 来分配缓冲区:
ByteBuffer buffer = ByteBuffer.allocate(1024);
allocate() 方法分配一个具有指定大小的底层数组,并将它包装到一个缓冲区对象中 — 在本例中是一个 ByteBuffer。
还可以将一个现有的数组转换为缓冲区:
byte array[] = new byte[1024];
ByteBuffer buffer = ByteBuffer.wrap(array);
本例使用了 wrap() 方法将一个数组包装为缓冲区。一旦完成包装,底层数据就可以通过缓冲区或者直接访问