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

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

Метод allocate () класса java.nio.ByteBuffer используется для выделения нового байтового буфера.

Позиция нового буфера будет равна нулю, его пределом будет его емкость, его метка будет неопределенной, и каждый из его элементов будет инициализирован нулем. У него будет резервный массив, и его смещение массива будет нулевым.

Синтаксис:

 публичный статический ByteBuffer allocate (int capacity)

Параметры: этот метод принимает емкость в байтах в качестве параметра.

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

Броски: этот метод выдает исключение IllegalArgumentException , если емкость является отрицательным целым числом.

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

Examples 1:

// Java program to demonstrate
// allocate() 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 using putInt() method
            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()));
        }
  
        catch (IllegalArgumentException e) {
  
            System.out.println("IllegalArgumentException catched");
        }
  
        catch (ReadOnlyBufferException e) {
  
            System.out.println("ReadOnlyBufferException catched");
        }
    }
}
Output:
Original ByteBuffer:  [20, 30, 40, 50]

Examples 2:

// Java program to demonstrate
// allocate() method
  
import java.nio.*;
import java.util.*;
  
public class GFG {
  
    public static void main(String[] args)
    {
  
        // Declaring the capacity with negative
        // value of the ByteBuffer
        int capacity = -4;
  
        // Creating the ByteBuffer
        try {
  
            // creating object of ByteBuffer
            // and allocating size capacity
            System.out.println("Trying to allocate negative"+
                                         " value in ByteBuffer");
            ByteBuffer bb = ByteBuffer.allocate(capacity);
  
            // putting int to byte typecast value
            // in ByteBuffer using putInt() method
            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()));
        }
  
        catch (IllegalArgumentException e) {
  
            System.out.println("Exception thrown : " + e);
        }
  
        catch (ReadOnlyBufferException e) {
  
            System.out.println("Exception thrown : " + e);
        }
    }
}
Output:
Trying to allocate negative value in ByteBuffer
Exception thrown : java.lang.IllegalArgumentException

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