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