El método flip() de java.nio.ByteBuffer Class se usa para voltear este búfer. El límite se establece en la posición actual y luego la posición se establece en cero. Si la marca está definida, se descarta. Después de una secuencia de operaciones de lectura o colocación de canal, invoque este método para prepararse para una secuencia de operaciones de escritura de canal o de obtención relativa.
Por ejemplo:
buf.put(magic); // Prepend header in.read(buf); // Read data into rest of buffer buf.flip(); // Flip buffer out.write(buf); // Write header + data to channel
Este método se usa a menudo junto con el método compacto cuando se transfieren datos de un lugar a otro.
Sintaxis:
public ByteBuffer flip()
Valor devuelto: este método devuelve este búfer.
A continuación se muestran los ejemplos para ilustrar el método flip():
Ejemplos 1:
// Java program to demonstrate // flip() 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 }; // wrap the byte array into floatBuffer // using wrap() method ByteBuffer byteBuffer = ByteBuffer.wrap(bb); // set position at index 1 byteBuffer.position(1); // print the byte buffer System.out.println("ByteBuffer before flip: " + Arrays.toString(byteBuffer.array()) + "\nPosition: " + byteBuffer.position() + "\nLimit: " + byteBuffer.limit()); // Flip the byteBuffer // using flip() method byteBuffer.flip(); // print the byte buffer System.out.println("\nByteBuffer after flip: " + Arrays.toString(byteBuffer.array()) + "\nPosition: " + byteBuffer.position() + "\nLimit: " + byteBuffer.limit()); } }
ByteBuffer before flip: [10, 20, 30] Position: 1 Limit: 3 ByteBuffer after flip: [10, 20, 30] Position: 0 Limit: 1
ByteBuffer before flip: [10, 20, 30] Position: 1 Limit: 3 ByteBuffer after flip: [10, 20, 30] Position: 0 Limit: 1
Ejemplos 2:
// Java program to demonstrate // flip() method import java.nio.*; import java.util.*; public class GFG { public static void main(String[] args) { // defining and allocating ByteBuffer // using allocate() method ByteBuffer byteBuffer = ByteBuffer.allocate(4); // put byte value in byteBuffer // using put() method byteBuffer.put((byte)20); byteBuffer.put((byte)30); // print the byte buffer System.out.println("ByteBuffer before flip: " + Arrays.toString(byteBuffer.array()) + "\nPosition: " + byteBuffer.position() + "\nLimit: " + byteBuffer.limit()); // Flip the byteBuffer // using flip() method byteBuffer.flip(); // print the byte buffer System.out.println("\nByteBuffer after flip: " + Arrays.toString(byteBuffer.array()) + "\nPosition: " + byteBuffer.position() + "\nLimit: " + byteBuffer.limit()); } }
ByteBuffer before flip: [20, 30, 0, 0] Position: 2 Limit: 4 ByteBuffer after flip: [20, 30, 0, 0] Position: 0 Limit: 2
Referencia: https://docs.oracle.com/javase/9/docs/api/java/nio/ByteBuffer.html#flip–
Publicación traducida automáticamente
Artículo escrito por RohitPrasad3 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA