Clase java.nio.ByteBuffer en Java

ByteBuffer contiene una secuencia de valores enteros que se utilizarán en una operación de E/S. La clase ByteBuffer proporciona las siguientes cuatro categorías de operaciones en búferes largos:

  • Método de obtención absoluto y relativo que lee bytes individuales.
  • Métodos put absolutos y relativos que escriben bytes individuales.
  • Métodos put y get masivos relativos que transfieren secuencias contiguas de bytes desde una array int o algún otro búfer de bytes a este búfer y de este búfer a una array.

Los búferes cortos se pueden crear mediante:

  • allocate(): Esto asigna espacio para el contenido del búfer.
  • wrap(): esto envuelve una array larga existente en un búfer.

La mayoría de los métodos de la clase ByteBuffer son directamente análogos a los métodos definidos por ByteBuffer.

Declaración de clase:

clase pública abstracta ByteBuffer

extiende el búfer

implementa Comparable<ByteBuffer>

Métodos de la clase CharBuffer:

Método Descripción
asignar (capacidad int) Este método asigna un nuevo búfer de bytes.
allocateDirect(capacidad int) Este método asigna un nuevo búfer de byte directo.
formación() Este método devuelve la array de bytes 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. 
comoCharBuffer() Este método crea una vista de este búfer de bytes como un búfer de caracteres.
comoDoubleBuffer() Este método crea una vista de este búfer de bytes como un búfer doble.
como búfer flotante() Este método crea una vista de este búfer de bytes como un búfer flotante.
comoIntBuffer() Este método crea una vista de este búfer de bytes como un búfer int.
comoLongBuffer() Este método crea una vista de este búfer de bytes como un búfer largo.
comoReadOnlyBuffer() Este método crea un nuevo búfer de bytes de solo lectura que comparte el contenido de este búfer.
como búfer corto() Este método crea una vista de este búfer de bytes como un búfer corto.
compacto() Este método compacta este búfer.
compareTo(ByteBuffer eso) Este método compara este búfer con otro.
duplicar() Este método crea un nuevo búfer de bytes que comparte el contenido de este búfer.
es igual a (Objeto ob) Este método indica si este búfer es igual a otro objeto.
obtener() Este método es un método de obtención relativo y devuelve el byte en la posición actual del búfer.
obtener(byte[] horario de verano) Este método es un método de obtención masiva relativa y devuelve este búfer. 
get(byte[] dst, int offset, int longitud) Este método es un método de obtención masiva relativa y devuelve este búfer.
obtener (índice int) Este método es un método de obtención absoluta y devuelve el byte en el índice dado.
getChar() Este método es un método de obtención relativo para leer un valor de carácter y devuelve el valor de carácter en la posición actual del búfer.
getChar(índice int) Este método es un método de obtención absoluta para leer un valor de carácter y devuelve el valor de carácter en el índice dado.
obtenerDoble() Este método es un método de obtención relativa para leer un valor doble y devuelve el valor doble en la posición actual del búfer.
getDouble(índice int) Este método es un método de obtención absoluta para leer un valor doble y devuelve el valor doble en el índice dado.
getFloat() Este método es un método de obtención relativo para leer un valor flotante y devuelve el valor flotante en la posición actual del búfer.
getFloat(índice int) Este método es un método de obtención absoluta para leer un valor flotante y devuelve el valor flotante en el índice dado.
getInt() Este método es un método de obtención relativo para leer un valor int y devuelve el valor int en la posición actual del búfer.
getInt(índice int) Este método es un método de obtención absoluta para leer un valor int y devuelve el valor int en el índice dado.
obtenerLargo() Este método es un método de obtención relativa para leer un valor largo y devuelve el valor largo en la posición actual del búfer.
getLong(índice int) Este método es un método de obtención absoluta para leer un valor largo y devuelve el valor int en el índice dado.
obtenerCorto() Este método es un método de obtención relativo para leer un valor corto y devuelve el valor largo en la posición actual del búfer.
getShort(índice int) Este método es un método de obtención absoluta para leer un valor corto y devuelve el valor int en el índice dado.
tieneArray() Este método indica si este búfer está respaldado por una array de bytes accesible.
código hash() Este método devuelve el código hash actual de este búfer.
esDirecto() Este método indica si este búfer de bytes es directo.
ordenar() Este método recupera el orden de bytes de este búfer.
orden (orden de bytes bo) Este método modifica el orden de bytes de este búfer.
poner (byte b) Este método es un método put relativo y devuelve este búfer. 
poner(byte[] src) Este método es un método de colocación masiva relativo y devuelve este búfer.
poner(ByteBuffer src) Este método es un método de colocación masiva relativo y devuelve este búfer.
put(índice int, byte b) Este método es un método put absoluto y devuelve este búfer.
putChar(valor de carácter) Este método es un método put relativo para escribir un valor char.
putChar(índice int, valor char) Este método es un método put absoluto para escribir un valor char.
putDouble(doble valor) Este método es un método put relativo para escribir un valor doble.
putDouble(índice int, valor doble) Este método es un método put absoluto para escribir un valor doble.
putFloat(valor flotante) Este método es un método put relativo para escribir un valor flotante.  
putFloat(índice int, valor flotante) Este método es un método put absoluto para escribir un valor flotante. 
putInt(valor int) Este método es un método put relativo para escribir un valor int.
putInt(índice int, valor int) Este método es un método put absoluto para escribir un valor int. 
putLong(índice int, valor largo) Este método es un método put absoluto para escribir un valor largo.
putLong(valor largo) Este método es un método put relativo para escribir un valor largo. 
putShort(índice int, valor corto) Este método es un método put absoluto para escribir un valor corto. 
putShort(valor corto) Este método es un método put relativo para escribir un valor corto. 
rodaja() Este método crea un nuevo búfer de bytes cuyo contenido es una subsecuencia compartida del contenido de este búfer.
Enstringr() Este método devuelve una string que resume el estado de este búfer.
envolver (array de bytes []) Este método envuelve una array de bytes en un búfer.
wrap(array byte[], desplazamiento int, longitud int) Este método envuelve una array de bytes en un búfer.

Los siguientes son algunos programas para demostrar la clase CharBuffer y sus métodos:

Ejemplo 1:

Java

// Java program to demonstrate
// ByteBuffer class
  
import java.nio.*;
import java.util.*;
  
public class GFG {
  
    public static void main(String[] args)
    {
  
        // Declaring the capacity of the ByteBuffer
        int capacity = 4;
  
        // Creating the ByteBuffer
        try {
  
            // creating object of ByteBuffer
            // and allocating size capacity
            ByteBuffer bb = ByteBuffer.allocate(capacity);
  
            // putting the int to byte typecast value
            // in ByteBuffer using putInt() method
            bb.put((byte)10);
            bb.put((byte)20);
            bb.put((byte)30);
            bb.put((byte)40);
            bb.rewind();
  
            // print the ByteBuffer
            System.out.println(
                "Original ByteBuffer: "
                + Arrays.toString(bb.array()));
        }
  
        catch (IllegalArgumentException e) {
  
            System.out.println(
                "IllegalArgumentException catched");
        }
  
        catch (ReadOnlyBufferException e) {
  
            System.out.println(
                "ReadOnlyBufferException catched");
        }
    }
}
Producción

Original ByteBuffer: [10, 20, 30, 40]

Ejemplo 2:

Java

// Java program to demonstrate
// ByteBuffer class
  
import java.nio.*;
import java.util.*;
  
public class GFG {
  
    public static void main(String[] args)
    {
  
        // Declaring the capacity of the ByteBuffer
        int capacity = 50;
  
        // Creating the ByteBuffer
        try {
  
            // creating object of ByteBuffer
            // and allocating size capacity
            ByteBuffer bb = ByteBuffer.allocate(capacity);
  
            // changeing bytebuffer view as char buffer
            // and putting a string value
            bb.asCharBuffer().put("GeeksForGeeks");
  
            // Declaring char variable c
            char c;
  
            // print the ByteBuffer
            System.out.print("Char buffer : ");
            while ((c = bb.getChar()) != 0)
                System.out.print(c + " ");
            System.out.println();
        }
  
        catch (IllegalArgumentException e) {
  
            System.out.println("Exception thrown : " + e);
        }
  
        catch (ReadOnlyBufferException e) {
  
            System.out.println("Exception thrown : " + e);
        }
    }
}
Producción

Char buffer : G e e k s F o r G e e k s 

Publicación traducida automáticamente

Artículo escrito por mank1083 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 *