ByteBuffer putLong() methods in Java with Examples

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 the 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:

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to demonstrate
// putLong() method
  
import java.nio.*;
import java.util.*;
  
public class GFG {
    public static void main(String[] args)
    {
  
        // Declaring the capacity of the ByteBuffer
        int capacity = 24;
  
        // Creating the ByteBuffer
        try {
  
            // creating object of ByteBuffer
            // and allocating size capacity
            ByteBuffer bb = ByteBuffer.allocate(capacity);
  
            // putting the value in ByteBuffer
            // using putLong() method
            bb.putLong(23)
                .putLong(24)
                .putLong(30)
                .rewind();
  
            // print the ByteBuffer
            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);
        }
    }
}

chevron_right


Output:

Original ByteBuffer: [ 23 24 30 ]

Example 2: To demonstrate BufferOverflowException.

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to demonstrate
// putLong() method
  
import java.nio.*;
import java.util.*;
  
public class GFG {
    public static void main(String[] args)
    {
  
        // Declaring the capacity of the ByteBuffer
        int capacity = 24;
  
        // Creating the ByteBuffer
        try {
  
            // creating object of ByteBuffer
            // and allocating size capacity
            ByteBuffer bb = ByteBuffer.allocate(capacity);
  
            // putting the value in ByteBuffer
            // using putLong() method
            bb.putLong(23)
                .putLong(24)
                .putLong(30)
                .rewind();
  
            // print the ByteBuffer
            System.out.print("Original ByteBuffer: [ ");
            for (int i = 1; i <= capacity / 8; i++)
                System.out.print(bb.getLong() + " ");
            System.out.print("]");
  
            // putting the value in ByteBuffer
            // using putInt() method
            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);
        }
    }
}

chevron_right


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.

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to demonstrate
// putLong() method
  
import java.nio.*;
import java.util.*;
  
public class GFG {
    public static void main(String[] args)
    {
  
        // Declaring the capacity of the ByteBuffer
        int capacity = 24;
  
        // Creating the ByteBuffer
        try {
  
            // creating object of ByteBuffer
            // and allocating size capacity
            ByteBuffer bb = ByteBuffer.allocate(capacity);
  
            // putting the value in ByteBuffer
            // using putLong() method
            bb.putLong(23)
                .putLong(24)
                .putLong(30)
                .rewind();
  
            // print the ByteBuffer
            System.out.print("Original ByteBuffer: [ ");
            for (int i = 1; i <= capacity / 8; i++)
                System.out.print(bb.getLong() + " ");
            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 long value"
                               + " in read-only buffer");
  
            // putting the value in readonly ByteBuffer
            // using putLong() method
            bb1.putLong(234);
        }
  
        catch (BufferOverflowException e) {
  
            System.out.println("Exception throws : " + e);
        }
  
        catch (ReadOnlyBufferException e) {
  
            System.out.println("Exception throws : " + e);
        }
    }
}

chevron_right


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 the 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:

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to demonstrate
// putLong() method
  
import java.nio.*;
import java.util.*;
  
public class GFG {
  
    public static void main(String[] args)
    {
  
        // Declaring the capacity of the ByteBuffer
        int capacity = 24;
  
        // Creating the ByteBuffer
        try {
  
            // creating object of ByteBuffer
            // and allocating size capacity
            ByteBuffer bb = ByteBuffer.allocate(capacity);
  
            // putting the value in ByteBuffer
            // using putLong() at  index 0
            bb.putLong(0, 23);
  
            // putting the value in ByteBuffer
            // using putInt() at  index 8
            bb.putLong(8, 34);
  
            // putting the value in ByteBuffer
            // using putInt() at  index 16
            bb.putLong(16, 27);
  
            // rewinding the ByteBuffer
            bb.rewind();
  
            // print the ByteBuffer
            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);
        }
    }
}

chevron_right


Output:

Original ByteBuffer: [ 23  34  27  ]

Example 2: To demonstrate IndexOutOfBoundsException.

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to demonstrate
// putLong() method
  
import java.nio.*;
import java.util.*;
  
public class GFG {
  
    public static void main(String[] args)
    {
  
        // Declaring the capacity of the ByteBuffer
        int capacity = 24;
  
        // Creating the ByteBuffer
        try {
  
            // creating object of ByteBuffer
            // and allocating size capacity
            ByteBuffer bb = ByteBuffer.allocate(capacity);
  
            // putting the value in ByteBuffer
            // using putLong() at  index 0
            bb.putLong(0, 23);
  
            // putting the value in ByteBuffer
            // using putInt() at  index 8
            bb.putLong(8, 34);
  
            // putting the value in ByteBuffer
            // using putInt() at  index 16
            bb.putLong(16, 27);
  
            // rewinding the ByteBuffer
            bb.rewind();
  
            // print the ByteBuffer
            System.out.print("Original ByteBuffer: [ ");
            for (int i = 1; i <= capacity / 8; i++)
                System.out.print(bb.getLong() + "  ");
            System.out.print("]\n");
  
            // putting the value in ByteBuffer
            // using putInt() at  index -1
            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);
        }
    }
}

chevron_right


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.

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to demonstrate
// putLong() method
  
import java.nio.*;
import java.util.*;
  
public class GFG {
  
    public static void main(String[] args)
    {
  
        // Declaring the capacity of the ByteBuffer
        int capacity = 24;
  
        // 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 long value"
                               + " in read-only buffer");
  
            // putting the value in readonly ByteBuffer
            // using putLong() method
            bb1.putLong(0, 23);
        }
  
        catch (IndexOutOfBoundsException e) {
  
            System.out.println("Exception throws : " + e);
        }
  
        catch (ReadOnlyBufferException e) {
  
            System.out.println("Exception throws : " + e);
        }
    }
}

chevron_right


Output:

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

Reference:



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.