Métodos ByteBuffer putFloat() en Java con ejemplos

putFloat(valor flotante)

El método putFloat(valor flotante) de java.nio.ByteBuffer Class se usa para escribir cuatro bytes que contienen el valor flotante dado, en el orden de bytes actual, en este búfer en la posición actual y luego incrementa la posición en cuatro.

Sintaxis:

public abstract ByteBuffer putFloat(float value)

Parámetros: este método toma un valor flotante de parámetro que es el valor flotante que se va a escribir.

Valor devuelto: este método devuelve este ByteBuffer con el valor flotante escrito pasado como parámetro.

Excepción: este método arroja las siguientes excepciones:

  • BufferOverflowException: si la posición actual de este búfer no es más pequeña que su límite
  • ReadOnlyBufferException : si este búfer es de solo lectura

A continuación se muestran los ejemplos para ilustrar el método putFloat(valor flotante):

Ejemplo 1:

// Java program to demonstrate
// putFloat() method
  
import java.nio.*;
import java.util.*;
  
public class GFG {
    public static void main(String[] args)
    {
  
        // Declaring the capacity of the ByteBuffer
        int capacity = 12;
  
        // Creating the ByteBuffer
        try {
  
            // creating object of ByteBuffer
            // and allocating size capacity
            ByteBuffer bb = ByteBuffer.allocate(capacity);
  
            // putting the value in ByteBuffer
            // using putFloat() method
            bb.putFloat(23.4f)
                .putFloat(234.5f)
                .putFloat(34.56f)
                .rewind();
  
            // print the ByteBuffer
            System.out.print("Original ByteBuffer: [ ");
            for (int i = 1; i <= capacity / 4; i++)
                System.out.print(bb.getFloat() + " ");
            System.out.print("]");
        }
  
        catch (BufferOverflowException e) {
  
            System.out.println("Exception throws : " + e);
        }
  
        catch (ReadOnlyBufferException e) {
  
            System.out.println("Exception throws : " + e);
        }
    }
}
Producción:

Original ByteBuffer: [ 23.4 234.5 34.56 ]

Ejemplo 2: Para demostrar BufferOverflowException.

// Java program to demonstrate
// putFloat() method
  
import java.nio.*;
import java.util.*;
  
public class GFG {
    public static void main(String[] args)
    {
  
        // Declaring the capacity of the ByteBuffer
        int capacity = 12;
  
        // Creating the ByteBuffer
        try {
  
            // creating object of ByteBuffer
            // and allocating size capacity
            ByteBuffer bb = ByteBuffer.allocate(capacity);
  
            // putting the value in ByteBuffer
            // using putFloat() method
            bb.putFloat(23.4f)
                .putFloat(234.5f)
                .putFloat(34.56f)
                .rewind();
  
            // print the ByteBuffer
            System.out.print("Original ByteBuffer: [ ");
            for (int i = 1; i <= capacity / 4; i++)
                System.out.print(bb.getFloat() + " ");
            System.out.print("]");
  
            // putting the value in ByteBuffer
            // using putFloat() method
            bb.putFloat(234.55f);
        }
  
        catch (BufferOverflowException e) {
            System.out.println("\n\nbuffer's current "
                               + "position is not smaller"
                               + " than its limit");
            System.out.println("Exception throws : " + e);
        }
  
        catch (ReadOnlyBufferException e) {
  
            System.out.println("Exception throws : " + e);
        }
    }
}
Producción:

Original ByteBuffer: [ 23.4 234.5 34.56 ]

buffer's current position is not smaller than its limit
Exception throws : java.nio.BufferOverflowException

Ejemplos 3: Para demostrar ReadOnlyBufferException.

// Java program to demonstrate
// putFloat() method
  
import java.nio.*;
import java.util.*;
  
public class GFG {
    public static void main(String[] args)
    {
  
        // Declaring the capacity of the ByteBuffer
        int capacity = 12;
  
        // Creating the ByteBuffer
        try {
  
            // creating object of ByteBuffer
            // and allocating size capacity
            ByteBuffer bb = ByteBuffer.allocate(capacity);
  
            // putting the value in ByteBuffer
            // using putFloat() method
            bb.putFloat(23.4f)
                .putFloat(234.5f)
                .putFloat(34.56f)
                .rewind();
  
            // print the ByteBuffer
            System.out.print("Original ByteBuffer: [ ");
            for (int i = 1; i <= capacity / 4; i++)
                System.out.print(bb.getFloat() + " ");
            System.out.print("]");
  
            // Creating a read-only copy of ByteBuffer
            // using asReadOnlyBuffer() method
            ByteBuffer bb1 = bb.asReadOnlyBuffer();
  
            System.out.println("\n\nTrying to put the float value"
                               + " in read-only buffer");
  
            // putting the value in readonly ByteBuffer
            // using putFloat() method
            bb1.putFloat(234.5f);
        }
  
        catch (BufferOverflowException e) {
  
            System.out.println("Exception throws : " + e);
        }
  
        catch (ReadOnlyBufferException e) {
  
            System.out.println("Exception throws : " + e);
        }
    }
}
Producción:

Original ByteBuffer: [ 23.4 234.5 34.56 ]

Trying to put the float value in read-only buffer
Exception throws : java.nio.ReadOnlyBufferException

putFloat(índice int, valor flotante)

El método putFloat(int index, float value) de java.nio.ByteBuffer Class se usa para escribir cuatro bytes que contienen los cuatro valores dados, en el orden de bytes actual, en este búfer en el índice dado.

Sintaxis:

public abstract ByteBuffer putFloat(int index, float value)

Parámetros: Este método toma los siguientes argumentos como parámetro:

  • index : el índice en el que se escribirá el byte
  • value : El valor doble que se va a escribir

Valor devuelto: este método devuelve este búfer.

Excepción: este método arroja la siguiente excepción:

  • IndexOutOfBoundsException: si el índice es negativo o no más pequeño que el límite del búfer
  • ReadOnlyBufferException : si este búfer es de solo lectura

A continuación se muestran los ejemplos para ilustrar el método putFloat(int index, float value):

Ejemplo 1:

// Java program to demonstrate
// putFloat() method
  
import java.nio.*;
import java.util.*;
  
public class GFG {
  
    public static void main(String[] args)
    {
  
        // Declaring the capacity of the ByteBuffer
        int capacity = 12;
  
        // Creating the ByteBuffer
        try {
  
            // creating object of ByteBuffer
            // and allocating size capacity
            ByteBuffer bb = ByteBuffer.allocate(capacity);
  
            // putting the value in ByteBuffer
            // using putFloat() at  index 0
            bb.putFloat(0, 23.45f);
  
            // putting the value in ByteBuffer
            // using putFloat() at  index 4
            bb.putFloat(4, 34.56f);
  
            // putting the value in ByteBuffer
            // using putFloat() at  index 8
            bb.putFloat(8, 27.56f);
  
            // rewinding the ByteBuffer
            bb.rewind();
  
            // print the ByteBuffer
            System.out.print("Original ByteBuffer: [ ");
            for (int i = 1; i <= capacity / 4; i++)
                System.out.print(bb.getFloat() + "  ");
            System.out.print("]\n");
        }
  
        catch (IndexOutOfBoundsException e) {
  
            System.out.println("Exception throws : " + e);
        }
  
        catch (ReadOnlyBufferException e) {
  
            System.out.println("Exception throws : " + e);
        }
    }
}
Producción:

Original ByteBuffer: [ 23.45  34.56  27.56  ]

Ejemplo 2: Para demostrar IndexOutOfBoundsException.

// Java program to demonstrate
// putFloat() method
  
import java.nio.*;
import java.util.*;
  
public class GFG {
  
    public static void main(String[] args)
    {
  
        // Declaring the capacity of the ByteBuffer
        int capacity = 12;
  
        // Creating the ByteBuffer
        try {
  
            // creating object of ByteBuffer
            // and allocating size capacity
            ByteBuffer bb = ByteBuffer.allocate(capacity);
  
            // putting the value in ByteBuffer
            // using putFloat() at  index 0
            bb.putFloat(0, 23.45f);
  
            // putting the value in ByteBuffer
            // using putFloat() at  index 4
            bb.putFloat(4, 34.56f);
  
            // putting the value in ByteBuffer
            // using putFloat() at  index 8
            bb.putFloat(8, 27.56f);
  
            // rewinding the ByteBuffer
            bb.rewind();
  
            // print the ByteBuffer
            System.out.print("Original ByteBuffer: [ ");
            for (int i = 1; i <= capacity / 4; i++)
                System.out.print(bb.getFloat() + "  ");
            System.out.print("]\n");
  
            // putting the value in ByteBuffer
            // using putFloat() at  index -1
            bb.putFloat(-1, 45.67f);
        }
  
        catch (IndexOutOfBoundsException e) {
            System.out.println("\nindex is negative or not smaller "
                               + "than the buffer's limit");
            System.out.println("Exception throws : " + e);
        }
  
        catch (ReadOnlyBufferException e) {
  
            System.out.println("Exception throws : " + e);
        }
    }
}
Producción:

Original ByteBuffer: [ 23.45  34.56  27.56  ]

index is negative or not smaller than the buffer's limit
Exception throws : java.lang.IndexOutOfBoundsException

Ejemplo 3: Para demostrar ReadOnlyBufferException.

// Java program to demonstrate
// putFloat() method
  
import java.nio.*;
import java.util.*;
  
public class GFG {
  
    public static void main(String[] args)
    {
  
        // Declaring the capacity of the ByteBuffer
        int capacity = 12;
  
        // Creating the ByteBuffer
        try {
  
            // creating object of ByteBuffer
            // and allocating size capacity
            ByteBuffer bb = ByteBuffer.allocate(capacity);
  
            // Creating a read-only copy of ByteBuffer
            // using asReadOnlyBuffer() method
            ByteBuffer bb1 = bb.asReadOnlyBuffer();
  
            System.out.println("Trying to put the float value"
                               + " in read only buffer");
  
            // putting the value in readonly ByteBuffer
            // using putFloat() method
            bb1.putFloat(0, 23.4f);
        }
  
        catch (IndexOutOfBoundsException e) {
  
            System.out.println("Exception throws : " + e);
        }
  
        catch (ReadOnlyBufferException e) {
  
            System.out.println("Exception throws : " + e);
        }
    }
}
Producción:

Trying to put the float value in read only buffer
Exception throws : java.nio.ReadOnlyBufferException

Referencia:

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 *