Open In App

ByteBuffer putShort() methods in Java with Examples

Last Updated : 08 Feb, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

putShort(int value)

The putShort(int value) method of java.nio.ByteBuffer Class is used to write two bytes containing the given short value, in the current byte order, into this buffer at the current position, and then increments the position by two. 

Syntax:

public abstract ByteBuffer putShort(short value)

Parameters: This method takes the short 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 putShort(short value) method: 

Example 1: 

Java




// Java program to demonstrate
// putShort() method
 
import java.nio.*;
import java.util.*;
 
public class GFG {
    public static void main(String[] args)
    {
 
        // Declaring the capacity of the ByteBuffer
        int capacity = 6;
 
        // Creating the ByteBuffer
        try {
 
            // creating object of ByteBuffer
            // and allocating size capacity
            ByteBuffer bb = ByteBuffer.allocate(capacity);
 
            // putting the value in ByteBuffer
            // using putShort() method
            bb.putShort((short)0x041A)
                .putShort((short)0x042A)
                .putShort((short)0x043A)
                .rewind();
 
            // print the ByteBuffer
            System.out.print("Original ByteBuffer: [ ");
            for (int i = 1; i <= capacity / 2; i++)
                System.out.print(bb.getShort() + " ");
            System.out.print("]");
        }
 
        catch (BufferOverflowException e) {
 
            System.out.println("Exception throws : " + e);
        }
 
        catch (ReadOnlyBufferException e) {
 
            System.out.println("Exception throws : " + e);
        }
    }
}


Output:

Original ByteBuffer: [ 1050 1066 1082 ]

Example 2: To demonstrate BufferOverflowException. 

Java




// Java program to demonstrate
// putShort() method
 
import java.nio.*;
import java.util.*;
 
public class GFG {
    public static void main(String[] args)
    {
 
        // Declaring the capacity of the ByteBuffer
        int capacity = 6;
 
        // Creating the ByteBuffer
        try {
 
            // creating object of ByteBuffer
            // and allocating size capacity
            ByteBuffer bb = ByteBuffer.allocate(capacity);
 
            // putting the value in ByteBuffer
            // using putShort() method
            bb.putShort((short)0x041A)
                .putShort((short)0x042A)
                .putShort((short)0x043A)
                .rewind();
 
            // print the ByteBuffer
            System.out.print("Original ByteBuffer: [ ");
            for (int i = 1; i <= capacity / 2; i++)
                System.out.print(bb.getShort() + " ");
            System.out.print("]");
 
            // putting the value in ByteBuffer
            // using putShort() method
            bb.putShort((short)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: [ 1050 1066 1082 ]

buffer's current position is not smaller than its limit
Exception throws : java.nio.BufferOverflowException

Examples 3: To demonstrate ReadOnlyBufferException. 

Java




// Java program to demonstrate
// putShort() method
 
import java.nio.*;
import java.util.*;
 
public class GFG {
    public static void main(String[] args)
    {
 
        // Declaring the capacity of the ByteBuffer
        int capacity = 6;
 
        // Creating the ByteBuffer
        try {
 
            // creating object of ByteBuffer
            // and allocating size capacity
            ByteBuffer bb = ByteBuffer.allocate(capacity);
 
            // putting the value in ByteBuffer
            // using putShort() method
            bb.putShort((short)0x041A)
                .putShort((short)0x042A)
                .putShort((short)0x043A)
                .rewind();
 
            // print the ByteBuffer
            System.out.print("Original ByteBuffer: [ ");
            for (int i = 1; i <= capacity / 2; i++)
                System.out.print(bb.getShort() + " ");
            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 short value"
                               + " in read-only buffer");
 
            // putting the value in readonly ByteBuffer
            // using putShort() method
            bb1.putShort((short)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: [ 1050 1066 1082 ]

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

putShort(int index, short value)

The putShort(int index, short value) method of java.nio.ByteBuffer Class is used to write two bytes containing the given two value, in the current byte order, into this buffer at the given index. 

Syntax:

public abstract ByteBuffer putShort(int index, short value)

Parameters: This method takes the following arguments as a parameter:

  • index: The index at which the byte will be written
  • value: The short 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 putShort(int index, short value) method: 

Example 1: 

Java




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




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




// Java program to demonstrate
// putShort() method
 
import java.nio.*;
import java.util.*;
 
public class GFG {
 
    public static void main(String[] args)
    {
 
        // Declaring the capacity of the ByteBuffer
        int capacity = 6;
 
        // 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 int value"
                               + " in read-only buffer");
 
            // putting the value in readonly ByteBuffer
            // using putInt() method
            bb1.putInt(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 int value in read only buffer
Exception throws : java.nio.ReadOnlyBufferException

Reference:



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads