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