📅  最后修改于: 2023-12-03 14:42:44.942000             🧑  作者: Mango
在Java中,ByteBuffer是一个字节缓冲区,可用于读取和写入字节数据。ByteBuffer提供了许多有用的方法来处理字节数据。其中一个重要的方法是array()
,该方法用于将ByteBuffer中的数据复制到一个新的字节数组中。
public byte[] array()
array()
方法返回一个新的字节数组,其中包含了ByteBuffer的数据。请注意,这个字节数组和ByteBuffer共享相同的内部数据,对字节数组的修改也会影响到ByteBuffer的内容。
import java.nio.ByteBuffer;
import java.util.Arrays;
public class ByteBufferExample {
public static void main(String[] args) {
// 创建一个容量为10的ByteBuffer
ByteBuffer buffer = ByteBuffer.allocate(10);
// 写入数据到ByteBuffer
buffer.put((byte) 1);
buffer.put((byte) 2);
// 调用array()方法获取字节数组
byte[] byteArray = buffer.array();
// 打印字节数组的内容
System.out.println(Arrays.toString(byteArray));
// 修改字节数组的值
byteArray[0] = 5;
// 打印ByteBuffer的内容
System.out.println(buffer.get(0));
}
}
在上面的示例中,首先创建一个容量为10的ByteBuffer。然后我们向其中写入两个字节的数据。接下来,我们通过调用array()
方法获取字节数组,并把它打印出来。注意,这个时候ByteBuffer和字节数组共享相同的数据。接着我们修改了字节数组中的第一个元素,并再次打印了ByteBuffer的第一个字节的值。可以看到ByteBuffer的内容也随之改变,因为它们共享相同的数据。
请注意,如果ByteBuffer是只读的话,调用array()
方法将抛出ReadOnlyBufferException
异常。
以上就是Java中ByteBuffer的array()
方法的介绍和示例。这个方法可以很方便地将ByteBuffer中的数据转换成字节数组,并且可以随意操作字节数组的内容。记得谨慎使用,避免产生不必要的副作用。