ByteBuffer getLong() method in Java with Examples - GeeksforGeeks

17 Jun, 2019
The getLong() method of java.nio.ByteBuffer class is used to read the next eight bytes at this buffer’s current position, composing them into a long value according to the current byte order, and then increments the position by eight.
Syntax:
public abstract long getLong()
Return Value: This method returns the long value at the buffer’s current position.
Throws: This method throws BufferUnderflowException – If there are fewer than four bytes remaining in this buffer.
Below are the examples to illustrate the getLong() method:
Examples 1:
// Java program to demonstrate// getLong() method  import java.nio.*;import java.util.*;  public class GFG {      public static void main(String[] args)    {          // Declaring the capacity of the ByteBuffer        int capacity = 16;          // Creating the ByteBuffer        try {              // creating object of ByteBuffer            // and allocating size capacity            ByteBuffer bb = ByteBuffer.allocate(capacity);              // putting the long value in the bytebuffer            bb.asLongBuffer()                .put(1233003)                .put(2292292);              // rewind the Bytebuffer            bb.rewind();              // print the ByteBuffer            System.out.println("Original ByteBuffer: ");            for (int i = 1; i <= capacity / 8; i++)                System.out.print(bb.getLong() + " ");              // rewind the Bytebuffer            bb.rewind();              // Reads the long at this buffer's current position            // using getLong() method            long value = bb.getLong();              // print the long value            System.out.println("\n\nByte Value: " + value);              // Reads the  long at this buffer's next position            // using getLong() method            long value1 = bb.getLong();              // print the long value            System.out.print("\nNext Byte Value: " + value1);        }          catch (BufferUnderflowException e) {              System.out.println("\nException Thrown : " + e);        }    }}
Original ByteBuffer: 
1233003 2292292 

Byte Value: 1233003

Next Byte Value: 2292292

Examples 2:
// Java program to demonstrate// getLong() method  import java.nio.*;import java.util.*;  public class GFG {      public static void main(String[] args)    {          // Declaring the capacity of the ByteBuffer        int capacity = 16;          // Creating the ByteBuffer        try {              // creating object of ByteBuffer            // and allocating size capacity            ByteBuffer bb = ByteBuffer.allocate(capacity);              // putting the long value in the bytebuffer            bb.asLongBuffer()                .put(1233003)                .put(2292292);              // rewind the Bytebuffer            bb.rewind();              // print the ByteBuffer            System.out.println("Original ByteBuffer: ");            for (int i = 1; i <= capacity / 8; i++)                System.out.print(bb.getLong() + " ");              // rewind the Bytebuffer            bb.rewind();              // Reads the long at this buffer's current position            // using getLong() method            long value = bb.getLong();              // print the long value            System.out.println("\n\nByte Value: " + value);              // Reads the  long at this buffer's next position            // using getLong() method            long value1 = bb.getLong();              // print the long value            System.out.print("\nNext Byte Value: " + value1);              // Reads the  long at this buffer's next position            // using getLong() method            long value2 = bb.getLong();        }          catch (BufferUnderflowException e) {            System.out.println("\nthere are fewer than "                               + "eight bytes remaining in this buffer");            System.out.println("Exception Thrown : " + e);        }    }}
Original ByteBuffer: 
1233003 2292292 

Byte Value: 1233003

Next Byte Value: 2292292
there are fewer than eight bytes remaining in this buffer
Exception Thrown : java.nio.BufferUnderflowException

Reference: https://docs.oracle.com/javase/9/docs/api/java/nio/ByteBuffer.html#getLong–
The getLong(int index) method of ByteBuffer is used to read four bytes at the given index, composing them into a float value according to the current byte order.
Syntax:
public abstract long getLong(int index)
Parameters: This method takes index (The index from which the Byte will be read) as a parameter.
Return Value: This method returns the long value at the given index.
Exception: This method throws IndexOutOfBoundsException. If index is negative or not smaller than the buffer’s limit this exception is thrown.
Below are the examples to illustrate the getLong(int index) method:
Examples 1:
// Java program to demonstrate// getLong() method  import java.nio.*;import java.util.*;  public class GFG {      public static void main(String[] args)    {          // Declaring the capacity of the ByteBuffer        int capacity = 16;          // Creating the ByteBuffer        try {              // creating object of ByteBuffer            // and allocating size capacity            ByteBuffer bb = ByteBuffer.allocate(capacity);              // putting the long value in the bytebuffer            bb.asLongBuffer()                .put(1233003)                .put(2292292);              // rewind the Bytebuffer            bb.rewind();              // print the ByteBuffer            System.out.println("Original ByteBuffer: ");            for (int i = 1; i <= capacity / 8; i++)                System.out.print(bb.getLong() + " ");              // rewind the Bytebuffer            bb.rewind();              // Reads the long at this buffer's current position            // using getLong() method            long value = bb.getLong(0);              // print the long value            System.out.println("\n\nByte Value: " + value);              // Reads the  long at this buffer's next position            // using getLong() method            long value1 = bb.getLong(8);              // print the long value            System.out.print("\nNext Byte Value: " + value1);        }          catch (IndexOutOfBoundsException e) {              System.out.println("\nindex is negative or "                               + "smaller than the buffer's limit, "                               + "minus seven");            System.out.println("Exception Thrown : " + e);        }    }}
Original ByteBuffer: 
1233003 2292292 

Byte Value: 1233003

Next Byte Value: 2292292

Examples 2:
// Java program to demonstrate// getLong() method  import java.nio.*;import java.util.*;  public class GFG {      public static void main(String[] args)    {          // Declaring the capacity of the ByteBuffer        int capacity = 16;          // Creating the ByteBuffer        try {              // creating object of ByteBuffer            // and allocating size capacity            ByteBuffer bb = ByteBuffer.allocate(capacity);              // putting the long value in the bytebuffer            bb.asLongBuffer()                .put(1233003)                .put(2292292);              // rewind the Bytebuffer            bb.rewind();              // print the ByteBuffer            System.out.println("Original ByteBuffer: ");            for (int i = 1; i <= capacity / 8; i++)                System.out.print(bb.getLong() + " ");              // rewind the Bytebuffer            bb.rewind();              // Reads the long at this buffer's current position            // using getLong() method            long value = bb.getLong(0);              // print the long value            System.out.println("\n\nByte Value: " + value);              // Reads the  long at this buffer's next position            // using getLong() method            long value1 = bb.getLong(11);              // print the long value            System.out.print("\nNext Byte Value: " + value1);        }          catch (IndexOutOfBoundsException e) {              System.out.println("\nindex is negative or"                               + " smaller than the buffer's limit, "                               + "minus seven");            System.out.println("Exception Thrown : " + e);        }    }}
Original ByteBuffer: 
1233003 2292292 

Byte Value: 1233003

index is negative or smaller than the buffer's limit, minus seven
Exception Thrown : java.lang.IndexOutOfBoundsException

Reference: https://docs.oracle.com/javase/9/docs/api/java/nio/ByteBuffer.html#getLong-int-
Java-ByteBuffer
Java-Functions
Java-NIO package
Java
Java
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Stream In Java
Exceptions in Java
Constructors in Java
Different ways of Reading a text file in Java
Functional Interfaces in Java
Generics in Java
Comparator Interface in Java with Examples
Introduction to Java
PriorityQueue in Java
How to remove an element from ArrayList in Java?