ByteBuffer wrap() métodos 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 en el 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, su marca será indefinida y su orden de bytes será BIG_ENDIAN . Su array de respaldo será la array dada, y su compensación de array será cero.

Sintaxis:

public static ByteBuffer wrap(byte[] array)

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

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[] bb = { 10, 20, 30 };
  
        // print the byte array length
        System.out.println("Array length: "
                           + bb.length);
  
        // print the byte array element
        System.out.println("\nArray element: "
                           + Arrays.toString(bb));
  
        // wrap the byte array into floatBuffer
        // using wrap() method
        ByteBuffer byteBuffer = ByteBuffer.wrap(bb);
  
        // 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

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.length, su posición será compensada, su límite será compensado + longitud, su marca será indefinida y su orden de bytes será BIG_ENDIAN. Su array de respaldo será la array dada, y su desplazamiento 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.

Excepciones: 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)
    {
  
        try {
  
            // Declare and initialize the byte array
            byte[] bb = { 10, 20, 30 };
  
            // print the byte array length
            System.out.println("Array length: "
                               + bb.length);
  
            // print the byte array element
            System.out.println("\nArray element: "
                               + Arrays.toString(bb));
  
            // wrap the byte array into floatBuffer
            // using wrap() method
            ByteBuffer byteBuffer
                = ByteBuffer.wrap(bb, 0,
                                  bb.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("\npreconditions on the"
                               + " offset and length parameters"
                               + " do not hold");
            System.out.println("Exception throws:  " + e);
        }
    }
}
Producción:

Array length: 3

Array element: [10, 20, 30]

byteBuffer: [10, 20, 30]

bytebuffer capacity: 3

bytebuffer position:  0

Ejemplos 2: Para demostrar IndexOutOfBoundsException

// Java program to demonstrate
// wrap() method
  
import java.nio.*;
import java.util.*;
  
public class GFG {
    public static void main(String[] args)
    {
  
        try {
  
            // Declare and initialize the byte array
            byte[] bb = { 10, 20, 30 };
  
            // print the byte array length
            System.out.println("Array length: "
                               + bb.length);
  
            // print the byte array element
            System.out.println("\nArray element: "
                               + Arrays.toString(bb));
  
            // wrap the byte array into floatBuffer
            // using wrap() method
            ByteBuffer byteBuffer
                = ByteBuffer.wrap(bb, 1,
                                  bb.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("\npreconditions on the"
                               + " offset and length parameters"
                               + " do not hold");
            System.out.println("Exception throws:  " + e);
        }
    }
}
Producción:

Array length: 3

Array element: [10, 20, 30]

preconditions on the offset and length parameters do not hold
Exception throws:  java.lang.IndexOutOfBoundsException

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 *