La clase Buffer proporciona un búfer o un contenedor para fragmentos de datos de tipos primitivos específicos. Una secuencia finita de elementos se almacena linealmente en un búfer.
Las propiedades importantes de un búfer que lo hacen conveniente para realizar operaciones de lectura y escritura en los datos son:
- Capacidad: esta propiedad determina el número máximo de elementos que pueden estar en un búfer.
- Límite: esta propiedad determina el límite de los datos que se pueden leer o escribir proporcionando el índice de los elementos.
- Posición: esta propiedad determina la ubicación del elemento actual en el búfer.
Sintaxis: declaración de clase
public abstract class Buffer extends Object
La clase de búfer proporciona una subclase para cada uno de los siguientes tipos de datos de búfer, como ByteBuffer, MappedByteBuffer, CharBuffer, DoubleBuffer, FloatBuffer, IntBuffer, LongBuffer, ShortBuffer. La clase de búfer hereda los siguientes métodos de la clase java.lang.Object, como clone(), finalizar(), getClass(), hashCode(), notificar(), notificar a todos(), toString(), wait(). Ahora, pasar a los métodos de la clase Buffer es el siguiente, como se muestra alfabéticamente en el formato tabular que se muestra a continuación:
Método | Descripción |
---|---|
formación() | Este método devuelve la array que respalda este búfer |
arrayDesplazamiento() | Este método devuelve el desplazamiento dentro de la array de respaldo de este búfer del primer elemento del búfer |
capacidad() | Este método devuelve la capacidad de este búfer. |
clear() | Este método borra este búfer. |
dar la vuelta() | Este método voltea este búfer. |
tieneArray() | Este método indica si este búfer está respaldado o no por una array accesible. |
tieneRestante() | Este método indica si hay algún elemento entre la posición actual y el límite. |
esDirecto() | Este método indica si este búfer es directo o no. |
es solo lectura() | Este método indica si este búfer es de solo lectura o no. |
límite() | Este método devuelve el límite de este búfer. |
límite(int nuevoLímite) | Este método establece el límite de este búfer. |
Marcos() | Este método establece la marca de este búfer en su posición. |
posición() | Este método devuelve la posición de este búfer. |
position(int newPosition) | Este método establece la posición de este búfer. |
restante() | Este método devuelve el número de elementos entre la posición actual y el límite. |
Reiniciar() | Este método restablece la posición de este búfer a la posición marcada previamente. |
rebobinar() | Este método rebobina este búfer. |
Implementación: clase de búfer y sus métodos
Ejemplo 1
Java
// Java program to demonstrate Buffer Class // Importing required libraries import java.nio.*; import java.util.*; // Main class public class GFG { // Main driver method public static void main(String[] args) { // Declaring the capacity of the ByteBuffer int capacity = 5; // Try block to check for exceptions try { // Creating the ByteBuffer // Creating object of ByteBuffer class and // allocating size capacity ByteBuffer bufferObj = ByteBuffer.allocate(capacity); // Putting the int to byte typecast // value in ByteBuffer using put() method // Custom input entries bufferObj.put((byte)10); bufferObj.put((byte)20); bufferObj.put((byte)30); bufferObj.put((byte)40); bufferObj.put((byte)50); // Typecasting ByteBuffer into Buffer Buffer bufferObj1 = (Buffer)bufferObj; // Getting array that backs this buffer // using array() method byte[] arr = (byte[])bufferObj1.array(); // Display message only System.out.print(" The array is : ["); // Print the array for (int i = 0; i < arr.length; i++) System.out.print(" " + arr[i]); System.out.print(" ]"); } // Catch block to handle the exception catch (ReadOnlyBufferException e) { // Print message where exception occurred // is displayed on console System.out.println("Exception throws: " + e); } } }
The array is : [ 10 20 30 40 50 ]
Ejemplo 2
Java
// Java program to demonstrate Buffer class // Importing required libraries import java.nio.*; import java.util.*; // Main class public class GFG { // Main driver method public static void main(String[] args) { // try block to check for exceptions try { // Creating and initializing byte array // with custom elements byte[] barr = { 10, 20, 30, 40, 50 }; // Creating object of ByteBuffer class // and allocating size capacity ByteBuffer bufferObj = ByteBuffer.wrap(barr); // Typecasting ByteBuffer into Buffer Buffer bufferObj1 = (Buffer)bufferObj; // now trying to set the position at index 2 bufferObj1.position(2); // Setting this buffer mark position // using mark() method bufferObj1.mark(); // Again trying to set the position at index 4 bufferObj1.position(5); // Display the position System.out.println("position before reset: " + bufferObj1.position()); // Now trying to call clear() to restore // to the position at index 0 by discarding the // mark bufferObj1.clear(); // Print and display the position System.out.println("position after reset: " + bufferObj1.position()); } // Catch block to handle the exception catch (InvalidMarkException e) { // Display message to be showcase when exception // occurred System.out.println( "new position is less than " + "the position we marked before "); // Print the exception on the console // along with display message System.out.println("Exception throws: " + e); } } }
position before reset: 5 position after reset: 0
Publicación traducida automáticamente
Artículo escrito por surbhityagi15 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA