ByteBuffer putLong() methods in Java with Examples
Last Updated :
06 Feb, 2023
putLong(int value)
The putLong(int value) method of java.nio.ByteBuffer Class is used to write eight bytes containing the given long value, in the current byte order, into this buffer at the current position, and then increments the position by eight.
Syntax:
public abstract ByteBuffer putLong(long value)
Parameters: This method takes a long value to be written.
Return Value: This method returns this buffer.
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 putLong(long value) method:
Example 1:
Java
import java.nio.*;
import java.util.*;
public class GFG {
public static void main(String[] args)
{
int capacity = 24 ;
try {
ByteBuffer bb = ByteBuffer.allocate(capacity);
bb.putLong( 23 )
.putLong( 24 )
.putLong( 30 )
.rewind();
System.out.print("Original ByteBuffer: [ ");
for ( int i = 1 ; i <= capacity / 8 ; i++)
System.out.print(bb.getLong() + " ");
System.out.print("]");
}
catch (BufferOverflowException e) {
System.out.println("Exception throws : " + e);
}
catch (ReadOnlyBufferException e) {
System.out.println("Exception throws : " + e);
}
}
}
|
Output:
Original ByteBuffer: [ 23 24 30 ]
Example 2: To demonstrate BufferOverflowException.
Java
import java.nio.*;
import java.util.*;
public class GFG {
public static void main(String[] args)
{
int capacity = 24 ;
try {
ByteBuffer bb = ByteBuffer.allocate(capacity);
bb.putLong( 23 )
.putLong( 24 )
.putLong( 30 )
.rewind();
System.out.print("Original ByteBuffer: [ ");
for ( int i = 1 ; i <= capacity / 8 ; i++)
System.out.print(bb.getLong() + " ");
System.out.print("]");
bb.putLong( 234 );
}
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);
}
}
}
|
Output:
Original ByteBuffer: [ 23 24 30 ]
buffer's current position is not smaller than its limit
Exception throws : java.nio.BufferOverflowException
Examples 3: To demonstrate ReadOnlyBufferException.
Java
import java.nio.*;
import java.util.*;
public class GFG {
public static void main(String[] args)
{
int capacity = 24 ;
try {
ByteBuffer bb = ByteBuffer.allocate(capacity);
bb.putLong( 23 )
.putLong( 24 )
.putLong( 30 )
.rewind();
System.out.print("Original ByteBuffer: [ ");
for ( int i = 1 ; i <= capacity / 8 ; i++)
System.out.print(bb.getLong() + " ");
System.out.print("]");
ByteBuffer bb1 = bb.asReadOnlyBuffer();
System.out.println("\n\nTrying to put the long value"
+ " in read-only buffer");
bb1.putLong( 234 );
}
catch (BufferOverflowException e) {
System.out.println("Exception throws : " + e);
}
catch (ReadOnlyBufferException e) {
System.out.println("Exception throws : " + e);
}
}
}
|
Output:
Original ByteBuffer: [ 23 24 30 ]
Trying to put the long value in read only buffer
Exception throws : java.nio.ReadOnlyBufferException
putLong(int index, long value)
The putLong(int index, long value) method of java.nio.ByteBuffer Class is used to write eight bytes containing the given eight-byte value, in the current byte order, into this buffer at the given index.
Syntax:
public abstract ByteBuffer putLong(int index, long value)
Parameters: This method takes the following arguments as a parameter:
- index: The index at which the byte will be written
- value: The int 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 putLong(int index, long value) method:
Example 1:
Java
import java.nio.*;
import java.util.*;
public class GFG {
public static void main(String[] args)
{
int capacity = 24 ;
try {
ByteBuffer bb = ByteBuffer.allocate(capacity);
bb.putLong( 0 , 23 );
bb.putLong( 8 , 34 );
bb.putLong( 16 , 27 );
bb.rewind();
System.out.print("Original ByteBuffer: [ ");
for ( int i = 1 ; i <= capacity / 8 ; i++)
System.out.print(bb.getLong() + " ");
System.out.print("]\n");
}
catch (IndexOutOfBoundsException e) {
System.out.println("Exception throws : " + e);
}
catch (ReadOnlyBufferException e) {
System.out.println("Exception throws : " + e);
}
}
}
|
Output:
Original ByteBuffer: [ 23 34 27 ]
Example 2: To demonstrate IndexOutOfBoundsException.
Java
import java.nio.*;
import java.util.*;
public class GFG {
public static void main(String[] args)
{
int capacity = 24 ;
try {
ByteBuffer bb = ByteBuffer.allocate(capacity);
bb.putLong( 0 , 23 );
bb.putLong( 8 , 34 );
bb.putLong( 16 , 27 );
bb.rewind();
System.out.print("Original ByteBuffer: [ ");
for ( int i = 1 ; i <= capacity / 8 ; i++)
System.out.print(bb.getLong() + " ");
System.out.print("]\n");
bb.putInt(- 1 , 45 );
}
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);
}
}
}
|
Output:
Original ByteBuffer: [ 23 34 27 ]
index is negative or not smaller than the buffer's limit
Exception throws : java.lang.IndexOutOfBoundsException
Example 3: To demonstrate ReadOnlyBufferException.
Java
import java.nio.*;
import java.util.*;
public class GFG {
public static void main(String[] args)
{
int capacity = 24 ;
try {
ByteBuffer bb = ByteBuffer.allocate(capacity);
ByteBuffer bb1 = bb.asReadOnlyBuffer();
System.out.println("Trying to put the long value"
+ " in read-only buffer");
bb1.putLong( 0 , 23 );
}
catch (IndexOutOfBoundsException e) {
System.out.println("Exception throws : " + e);
}
catch (ReadOnlyBufferException e) {
System.out.println("Exception throws : " + e);
}
}
}
|
Output:
Trying to put the long value in read only buffer
Exception throws : java.nio.ReadOnlyBufferException
Reference:
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...