ByteBuffer get(int, byte[], int , int) in Java

get(int, byte[], int , int): This method is available in java.nio.ByteBuffer class of Java.

Syntax:

ByteBuffer java.nio.ByteBuffer.get(int index, byte[] dst, int offset, int length)

This method takes four arguments one of type byte array and rests three are of type int as its parameters. This method transfers length bytes from this buffer into the given array, starting at the given index in this buffer and at the given offset in the array. The position of this buffer is unchanged.

Parameters: Four parameters are required for this method.

index: The index in this buffer from which the first byte will be read; must be non-negative and less than limit().

dst: The destination array.

offset: The offset within the array of the first byte to be written; must be non-negative and less than dst.length.

length: The number of bytes to be written to the given array; must be non-negative and no larger than the smaller of limit() - index and dst.length - offset.

Returns: This buffer.

Throws: 

IndexOutOfBoundsException - If the preconditions on the index, offset, and length parameters do not hold.

Approach 1: When no exceptions.

Java

import java.nio.ByteBuffer;

public class ByteBufferget6 {
    public static void main(String[] args) {

        byte array[] = { 1234 };
        ByteBuffer bb = ByteBuffer.wrap(array);

        int index = 0;
        byte dst[] = { 45678 };
        int offset = 0, length = 3;
        System.out.println(bb.get(index, dst, offset, length));

    }
}

Output:

java.nio.HeapByteBuffer[pos=0 lim=4 cap=4]


Approach 2: IndexOutOfBoundsException

Java

import java.nio.ByteBuffer;

public class ByteBufferget6 {
    public static void main(String[] args) {

        byte array[] = { 1234 };
        ByteBuffer bb = ByteBuffer.wrap(array);

        int index = -1;
        byte dst[] = { 45678 };
        int offset = 0, length = 3;
        System.out.println(bb.get(index, dst, offset, length));

    }
}


Output:

Exception in thread "main" java.lang.IndexOutOfBoundsException: Range [-1, -1 + 3) out of bounds for length 4 at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64) at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckFromIndexSize(Preconditions.java:82) at java.base/jdk.internal.util.Preconditions.checkFromIndexSize(Preconditions.java:343) at java.base/java.util.Objects.checkFromIndexSize(Objects.java:411) at java.base/java.nio.HeapByteBuffer.get(HeapByteBuffer.java:193)


No comments:

Post a Comment