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()); } }
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()); } }
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); } } }
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