Métodos CharBuffer flip() en Java con ejemplos

El método flip() de java.nio.CharBuffer 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(magia); // Anteponer encabezado
in.read(buf); // Leer datos en el resto del búfer
buf.flip(); // Voltea el
búfer.write(buf); // Escribir encabezado + datos en el canal

Este método se usa a menudo junto con el método compact() cuando se transfieren datos de un lugar a otro.

Sintaxis:

public final CharBuffer 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 char array
        char[] cb = { 'a', 'b', 'c' };
  
        // wrap the char array into CharBuffer
        // using wrap() method
        CharBuffer charBuffe
            r
            = CharBuffer.wrap(cb);
  
        // set position at index 1
        charBuffer.position(1);
  
        // print the char buffer
        System.out.println("CharBuffer before flip: "
                           + Arrays.toString(
                                 charBuffer.array())
                           + "\nPosition: "
                           + charBuffer.position()
                           + "\nLimit: "
                           + charBuffer.limit());
  
        // Flip the charBuffer
        // using flip() method
        charBuffer.flip();
  
        // print the byte buffer
        System.out.println("\nCharBuffer after flip: "
                           + Arrays.toString(
                                 charBuffer.array())
                           + "\nPosition: "
                           + charBuffer.position()
                           + "\nLimit: "
                           + charBuffer.limit());
    }
}
Producción:

CharBuffer before flip: [a, b, c]
Position: 1
Limit: 3

CharBuffer after flip: [a, b, c]
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 CharBuffer
        // using allocate() method
        CharBuffer charBuffer
            = CharBuffer.allocate(4);
  
        // append char value in charBuffer
        // using append() method
        charBuffer.append('a');
        charBuffer.append('b');
  
        // print the char buffer
        System.out.println("CharBuffer before flip: "
                           + Arrays.toString(
                                 charBuffer.array())
                           + "\nPosition: "
                           + charBuffer.position()
                           + "\nLimit: "
                           + charBuffer.limit());
  
        // Flip the charBuffer
        // using flip() method
        charBuffer.flip();
  
        // print the char buffer
        System.out.println("CharBuffer before flip: "
                           + Arrays.toString(
                                 charBuffer.array())
                           + "\nPosition: "
                           + charBuffer.position()
                           + "\nLimit: "
                           + charBuffer.limit());
    }
}
Producción:

CharBuffer before flip: [a, b, c,  ]
Position: 3
Limit: 4
CharBuffer before flip: [a, b, c,  ]
Position: 0
Limit: 3

Referencia: https://docs.oracle.com/javase/9/docs/api/java/nio/CharBuffer.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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *