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 compact() cuando se transfieren datos de un lugar a otro.
Sintaxis:
public Buffer 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 ByteBuffer // using wrap() method ByteBuffer byteBuffer = ByteBuffer.wrap(bb); // Typecast ByteBuffer to Buffer Buffer buffer = (Buffer)byteBuffer; // set position at index 1 buffer.position(1); // print the buffer System.out.println("Buffer before flip: " + Arrays.toString((byte[])buffer.array()) + "\nPosition: " + buffer.position() + "\nLimit: " + buffer.limit()); // Flip the Buffer // using flip() method buffer.flip(); // print the buffer System.out.println("\nBuffer after flip: " + Arrays.toString((byte[])buffer.array()) + "\nPosition: " + buffer.position() + "\nLimit: " + buffer.limit()); } }
Buffer before flip: [10, 20, 30] Position: 1 Limit: 3 Buffer 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); // Typecast ByteBuffer to Buffer Buffer buffer = (Buffer)byteBuffer; // set position at index 1 buffer.position(1); // print the buffer System.out.println("Buffer before flip: " + Arrays.toString((byte[])buffer.array()) + "\nPosition: " + buffer.position() + "\nLimit: " + buffer.limit()); // Flip the Buffer // using flip() method buffer.flip(); // print the buffer System.out.println("\nBuffer after flip: " + Arrays.toString((byte[])buffer.array()) + "\nPosition: " + buffer.position() + "\nLimit: " + buffer.limit()); } }
Buffer before flip: [20, 30, 0, 0] Position: 1 Limit: 4 Buffer after flip: [20, 30, 0, 0] Position: 0 Limit: 1
Referencia: https://docs.oracle.com/javase/9/docs/api/java/nio/Buffer.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