Метод ByteBuffer array () в Java с примерами
Метод 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); } } } |
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); } } } |
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 и многому другому, см. Полный курс подготовки к собеседованию .