📌  相关文章
📜  Java中的 ByteBuffer array() 方法及示例(1)

📅  最后修改于: 2023-12-03 14:42:44.942000             🧑  作者: Mango

Java中的 ByteBuffer array() 方法及示例

简介

在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中的数据转换成字节数组,并且可以随意操作字节数组的内容。记得谨慎使用,避免产生不必要的副作用。