putFloat(float value)
The putFloat(float value) method of java.nio.ByteBuffer Class is used to write four bytes containing the given float value, in the current byte order, into this buffer at the current position, and then increments the position by four. Syntax:
public abstract ByteBuffer putFloat(float value)
Parameters: This method takes a parameter float value which is the float value to be written. Return Value: This method returns this ByteBuffer with the written float value passed as the parameter. Exception: This method throws the following exceptions:
- BufferOverflowException- If this buffer’s current position is not smaller than its limit
- ReadOnlyBufferException- If this buffer is read-only
Below are the examples to illustrate the putFloat(float value) method: Example 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);
}
}
} |
Original ByteBuffer: [ 23.4 234.5 34.56 ]
Example 2: To demonstrate 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);
}
}
} |
Original ByteBuffer: [ 23.4 234.5 34.56 ] buffer's current position is not smaller than its limit Exception throws : java.nio.BufferOverflowException
Examples 3: To demonstrate 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);
}
}
} |
Original ByteBuffer: [ 23.4 234.5 34.56 ] Trying to put the float value in read-only buffer Exception throws : java.nio.ReadOnlyBufferException
putFloat(int index, float value)
The putFloat(int index, float value) method of java.nio.ByteBuffer Class is used to write four bytes containing the given four value, in the current byte order, into this buffer at the given index. Syntax:
public abstract ByteBuffer putFloat(int index, float value)
Parameters: This method takes the following arguments as a parameter:
- index: The index at which the byte will be written
- value: The double value to be written
Return Value: This method returns this buffer. Exception: This method throws the following exception:
- IndexOutOfBoundsException- If index is negative or not smaller than the buffer’s limit
- ReadOnlyBufferException- If this buffer is read-only
Below are the examples to illustrate the putFloat(int index, float value) method: Example 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);
}
}
} |
Original ByteBuffer: [ 23.45 34.56 27.56 ]
Example 2: To demonstrate 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);
}
}
} |
Original ByteBuffer: [ 23.45 34.56 27.56 ] index is negative or not smaller than the buffer's limit Exception throws : java.lang.IndexOutOfBoundsException
Example 3: To demonstrate 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);
}
}
} |
Trying to put the float value in read only buffer Exception throws : java.nio.ReadOnlyBufferException
Reference:
- https://docs.oracle.com/javase/9/docs/api/java/nio/ByteBuffer.html#putFloat-float-
- https://docs.oracle.com/javase/9/docs/api/java/nio/ByteBuffer.html#getFloat-int-