Método ByteBuffer wrap() en Java con ejemplos

envolver (array de bytes [])

El método wrap() de java.nio.ByteBuffer Class se usa para envolver una array de bytes en un búfer. El nuevo búfer estará respaldado por la array de bytes dada; es decir, las modificaciones al búfer harán que la array se modifique y viceversa. La capacidad y el límite del nuevo búfer serán array.length, su posición será cero y su marca no estará definida. Su array de respaldo será la array dada, y su compensación de array será cero.

Sintaxis:

public static ByteBuffer wrap(float[] array)

Parámetros: este método toma una array flotante como parámetro, que es la array que respaldará este búfer.

Valor devuelto: este método devuelve el nuevo búfer de bytes.

A continuación se muestran los ejemplos para ilustrar el método wrap() :

Ejemplos 1:

// Java program to demonstrate
// wrap() method
  
import java.nio.*;
import java.util.*;
  
public class GFG {
    public static void main(String[] args)
    {
  
        // Declare and initialize the byte array
        byte[] bbb = { 10, 20, 30 };
  
        // print the byte array length
        System.out.println("Array length : "
                           + bbb.length);
  
        // print the byte array element
        System.out.println("\nArray element : "
                           + Arrays.toString(bbb));
  
        // wrap the byte array into byteBuffer
        // using wrap() method
        ByteBuffer byteBuffer = ByteBuffer.wrap(bbb);
  
        // Rewind the ByteBuffer
        byteBuffer.rewind();
  
        // print the byte buffer
        System.out.println("\nbyteBuffer : "
                           + Arrays.toString(byteBuffer.array()));
  
        // print the ByteBuffer capacity
        System.out.println("\nbyteBuffer capacity : "
                           + byteBuffer.capacity());
  
        // print the ByteBuffer position
        System.out.println("\nbyteBuffer position:  "
                           + byteBuffer.position());
    }
}
Producción:

Array length : 3

Array element : [10, 20, 30]

byteBuffer : [10, 20, 30]

byteBuffer capacity : 3

byteBuffer position:  0

Referencia: https://docs.oracle.com/javase/9/docs/api/java/nio/ByteBuffer.html#wrap-byte:A-

wrap(array byte[], desplazamiento int, longitud int)

El nuevo búfer estará respaldado por la array de bytes dada; es decir, las modificaciones al búfer harán que la array se modifique y viceversa. La capacidad del nuevo búfer será array.longitud, su posición estará compensada, su límite será compensado + longitud y su marca no estará definida. Su array de respaldo será la array dada, y su compensación de array será cero.

Sintaxis:

public static ByteBuffer wrap(byte[] array, 
                          int offset, int length)

Parámetros: Este método toma los siguientes parámetros:

  • array: la array que respaldará el nuevo búfer.
  • offset: el desplazamiento del subarreglo a utilizar; debe ser no negativo y no mayor que array.length. La posición del nuevo búfer se establecerá en este valor.
  • longitud: la longitud del subarreglo que se utilizará; debe ser no negativo y no mayor que array.length – offset. El límite del nuevo búfer se establecerá en desplazamiento + longitud.

Valor devuelto: este método devuelve el nuevo búfer de bytes.

Lanza: este método lanza la excepción IndexOutOfBoundsException (si las condiciones previas en los parámetros de desplazamiento y longitud no se cumplen).

A continuación se muestran los ejemplos para ilustrar el método wrap():

Ejemplos 1:

// Java program to demonstrate
// wrap() method
  
import java.nio.*;
import java.util.*;
  
public class GFG {
  
    public static void main(String[] args)
    {
  
        // Declare and initialize the byte array
        byte[] bbb = { 10, 20, 30 };
  
        // print the byte array length
        System.out.println("Array length : "
                           + bbb.length);
  
        // print the byte array element
        System.out.println("\nArray element : "
                           + Arrays.toString(bbb));
  
        // wrap the byte array into ByteBuffer
        // using wrap() method
        ByteBuffer byteBuffer = ByteBuffer.wrap(bbb, 0,
                                                bbb.length);
  
        // Rewind the bytebuffer
        byteBuffer.rewind();
  
        // print the byte buffer
        System.out.println("\nbyteBuffer : "
                           + Arrays.toString(byteBuffer.array()));
  
        // print the ByteBuffer capacity
        System.out.println("\nbyteBuffer capacity : "
                           + byteBuffer.capacity());
  
        // print the ByteBuffer position
        System.out.println("\nbyteBuffer position:  "
                           + byteBuffer.position());
    }
}
Producción:

Array length : 3

Array element : [10, 20, 30]

byteBuffer : [10, 20, 30]

byteBuffer capacity : 3

byteBuffer position:  0

Ejemplos 2: Para demostrar NullPointerException

// Java program to demonstrate
// asReadOnlyBuffer() method
  
import java.nio.*;
import java.util.*;
  
public class GFG {
  
    public static void main(String[] args)
    {
  
        // Declare and initialize the byte array
        byte[] bbb = { 10, 20, 30 };
  
        // print the byte array length
        System.out.println("Array length : " + bbb.length);
  
        // print the byte array element
        System.out.println("\nArray element : " + Arrays.toString(bbb));
  
        try {
            // wrap the byte array into byteBuffer
            // using wrap() method
            System.out.println("\nHere "
                               + "offset and length does not hold"
                               + " the required condition ");
            ByteBuffer byteBuffer = ByteBuffer.wrap(bbb,
                                                    1,
                                                    bbb.length);
  
            // Rewind the bytebuffer
            byteBuffer.rewind();
  
            // print the byte buffer
            System.out.println("\nbyteBuffer : "
                               + Arrays.toString(byteBuffer.array()));
  
            // print the byteBuffer capacity
            System.out.println("\nbytebuffer capacity : "
                               + byteBuffer.capacity());
  
            // print the byteBuffer position
            System.out.println("\nbytebuffer position:  "
                               + byteBuffer.position());
        }
        catch (IndexOutOfBoundsException e) {
            System.out.println("Exception throws:  " + e);
        }
    }
}
Producción:

Array length : 3

Array element : [10, 20, 30]

Here offset and length does not hold the required condition 
Exception throws:  java.lang.IndexOutOfBoundsException

Referencia: https://docs.oracle.com/javase/9/docs/api/java/nio/ByteBuffer.html#wrap-byte:A-int-int-

Publicación traducida automáticamente

Artículo escrito por RohitPrasad3 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *