Метод ByteBuffer array () в Java с примерами

Опубликовано: 12 Февраля, 2022

Метод array () класса java.nio.ByteBuffer используется для возврата массива байтов, который поддерживает взятый буфер.

Модификации содержимого этого буфера приведут к изменению содержимого возвращаемого массива и наоборот.

Вызовите метод hasArray () перед вызовом этого метода, чтобы гарантировать, что этот буфер имеет доступный резервный массив.

Синтаксис:

 общедоступный последний байт [] array ()

Возвращаемое значение: этот метод возвращает массив, который поддерживает этот буфер.

Исключение: этот метод вызывает исключение ReadOnlyBufferException , если этот буфер поддерживается массивом, но доступен только для чтения.

Ниже приведены примеры, иллюстрирующие метод array ():

Example 1:

// Java program to demonstrate
// array() method
  
import java.nio.*;
import java.util.*;
  
public class GFG {
  
    public static void main(String[] args)
    {
  
        // Declaring the capacity of the ByteBuffer
        int capacity = 4;
  
        // Creating the ByteBuffer
        try {
  
            // creating object of ByteBuffer
            // and allocating size capacity
            ByteBuffer bb = ByteBuffer.allocate(capacity);
  
            // putting the int to byte typecast value in ByteBuffer
            bb.put((byte)20);
            bb.put((byte)30);
            bb.put((byte)40);
            bb.put((byte)50);
  
            // print the ByteBuffer
            System.out.println("ByteBuffer:  "
                               + Arrays.toString(bb.array()));
  
            // getting byte array from ByteBuffer
            // using array() method
            byte[] arr = bb.array();
  
            // print the byte array
            System.out.println(" byte array: "
                                    Arrays.toString(arr));
        }
  
        catch (IllegalArgumentException e) {
  
            System.out.println("Exception throws: " + e);
        }
    }
}
Output:
ByteBuffer:  [20, 30, 40, 50]

byte array: [20, 30, 40, 50]

Example 2:

// Java program to demonstrate
// array() method
  
import java.nio.*;
import java.util.*;
  
public class GFG {
  
    public static void main(String[] args)
    {
  
        // Declaring the capacity of the ByteBuffer
        int capacity = 4;
  
        // Creating the ByteBuffer
        try {
  
            // creating object of ByteBuffer
            // and allocating size capacity
            ByteBuffer bb = ByteBuffer.allocate(capacity);
  
            // putting the int to byte typcast value
            // in ByteBuffer
            bb.put((byte)20);
            bb.put((byte)30);
            bb.put((byte)40);
            bb.put((byte)50);
            bb.rewind();
  
            // print the ByteBuffer
            System.out.println("Original ByteBuffer:  "
                               + Arrays.toString(bb.array()));
  
            // Creating a read-only copy of ByteBuffer
            // using asReadOnlyBuffer() method
            ByteBuffer bb1 = bb.asReadOnlyBuffer();
            bb1.rewind();
  
            // print the ByteBuffer
            System.out.print(" ReadOnlyBuffer ByteBuffer : ");
  
            while (bb1.hasRemaining())
                System.out.print(bb1.get() + ", ");
  
            // getting byte array from read-only
            // ByteBuffer using array() method
            System.out.println(" Trying to get the array"
                               + " from bb1 for editing");
            byte[] arr = bb1.array();
        }
  
        catch (IllegalArgumentException e) {
  
            System.out.println("Exception throws: " + e);
        }
  
        catch (ReadOnlyBufferException e) {
  
            System.out.println("Exception throws: " + e);
        }
    }
}
Output:
Original ByteBuffer:  [20, 30, 40, 50]

ReadOnlyBuffer ByteBuffer : 20, 30, 40, 50, 

Trying to get the array from bb1 for editing
Exception throws: java.nio.ReadOnlyBufferException

Вниманию читателя! Не переставай учиться сейчас. Ознакомьтесь со всеми важными концепциями Java Foundation и коллекций с помощью курса "Основы Java и Java Collections" по доступной для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .