ByteBuffer putDouble() methods in Java with Examples

putDouble(double value)

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

Syntax:

public abstract ByteBuffer putDouble?(double value)

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

Example 1:

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to demonstrate
// putDouble() 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 putDouble() method
            bb.putDouble(23.4)
                .putDouble(234.5)
                .putDouble(34.56)
                .rewind();
  
            // print the ByteBuffer
            System.out.print("Original ByteBuffer: [ ");
            for (int i = 1; i <= capacity / 8; i++)
                System.out.print(bb.getDouble() + " ");
            System.out.print("]");
  
            // putting the value in ByteBuffer
            // using putDouble() method
            bb.putDouble(234.55);
        }
  
        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.4 234.5 34.56 ]

Example 2: To demonstrate BufferOverflowException.

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to demonstrate
// putDouble() 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 putDouble() method
            bb.putDouble(23.4)
                .putDouble(234.5)
                .putDouble(34.56)
                .rewind();
  
            // print the ByteBuffer
            System.out.print("Original ByteBuffer: [ ");
            for (int i = 1; i <= capacity / 8; i++)
                System.out.print(bb.getDouble() + " ");
            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 char value"
                               + " in read-only buffer");
  
            // putting the value in readonly ByteBuffer
            // using putDouble() method
            bb1.putDouble(234.5);
        }
  
        catch (BufferOverflowException e) {
  
            System.out.println("Exception throws : " + e);
        }
  
        catch (ReadOnlyBufferException e) {
  
            System.out.println("Exception throws : " + e);
        }
    }
}

chevron_right


Output:

Original ByteBuffer: [ 23.4 234.5 34.56 ]

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
// putDouble() 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 putDouble() at  index 0
            bb.putDouble(0, 23.45);
  
            // putting the value in ByteBuffer
            // using putDouble() at  index 8
            bb.putDouble(8, 34.56);
  
            // putting the value in ByteBuffer
            // using putDouble() at  index 16
            bb.putDouble(16, 27.56);
  
            // 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.getDouble() + " ");
            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.4 234.5 34.56 ]

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

putDouble(int index, double value)

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

Syntax:

public abstract ByteBuffer putDouble(int index, double value)

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

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

Example 1:

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to demonstrate
// putDouble() 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 putDouble() at  index 0
            bb.putDouble(0, 23.45);
  
            // putting the value in ByteBuffer
            // using putDouble() at  index 8
            bb.putDouble(8, 34.56);
  
            // putting the value in ByteBuffer
            // using putDouble() at  index 16
            bb.putDouble(16, 27.56);
  
            // 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.getDouble() + " ");
            System.out.print("]\n");
  
            // putting the value in ByteBuffer
            // using putDouble() at  index -1
            bb.putDouble(-1, 45.67);
        }
  
        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.45 34.56 27.56 ]

Example 2: To demonstrate IndexOutOfBoundsException.

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


Output:

Original ByteBuffer: [ 23.45 34.56 27.56 ]

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

<div id="highlighter_588466" class="syntaxhighlighter nogutter  "><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="comments">// Java program to demonstrate </code></div><div class="line number2 index1 alt1"><code class="comments">// putDouble() method </code></div><div class="line number3 index2 alt2"><code class="undefined spaces"> </code> </div><div class="line number4 index3 alt1"><code class="keyword">import</code> <code class="plain">java.nio.*; </code></div><div class="line number5 index4 alt2"><code class="keyword">import</code> <code class="plain">java.util.*; </code></div><div class="line number6 index5 alt1"><code class="undefined spaces"> </code> </div><div class="line number7 index6 alt2"><code class="keyword">public</code> <code class="keyword">class</code> <code class="plain">GFG { </code></div><div class="line number8 index7 alt1"><code class="undefined spaces"> </code> </div><div class="line number9 index8 alt2"><code class="undefined spaces">    </code><code class="keyword">public</code> <code class="keyword">static</code> <code class="keyword">void</code> <code class="plain">main(String[] args) </code></div><div class="line number10 index9 alt1"><code class="undefined spaces">    </code><code class="plain">{ </code></div><div class="line number11 index10 alt2"><code class="undefined spaces"> </code> </div><div class="line number12 index11 alt1"><code class="undefined spaces">        </code><code class="comments">// Declaring the capacity of the ByteBuffer </code></div><div class="line number13 index12 alt2"><code class="undefined spaces">        </code><code class="keyword">int</code> <code class="plain">capacity = </code><code class="value">8</code><code class="plain">; </code></div><div class="line number14 index13 alt1"><code class="undefined spaces"> </code> </div><div class="line number15 index14 alt2"><code class="undefined spaces">        </code><code class="comments">// Creating the ByteBuffer </code></div><div class="line number16 index15 alt1"><code class="undefined spaces">        </code><code class="keyword">try</code> <code class="plain">{ </code></div><div class="line number17 index16 alt2"><code class="undefined spaces"> </code> </div><div class="line number18 index17 alt1"><code class="undefined spaces">            </code><code class="comments">// creating object of ByteBuffer </code></div><div class="line number19 index18 alt2"><code class="undefined spaces">            </code><code class="comments">// and allocating size capacity </code></div><div class="line number20 index19 alt1"><code class="undefined spaces">            </code><code class="plain">ByteBuffer bb = ByteBuffer.allocate(capacity); </code></div><div class="line number21 index20 alt2"><code class="undefined spaces"> </code> </div><div class="line number22 index21 alt1"><code class="undefined spaces">            </code><code class="comments">// Creating a read-only copy of ByteBuffer </code></div><div class="line number23 index22 alt2"><code class="undefined spaces">            </code><code class="comments">// using asReadOnlyBuffer() method </code></div><div class="line number24 index23 alt1"><code class="undefined spaces">            </code><code class="plain">ByteBuffer bb1 = bb.asReadOnlyBuffer(); </code></div><div class="line number25 index24 alt2"><code class="undefined spaces"> </code> </div><div class="line number26 index25 alt1"><code class="undefined spaces">            </code><code class="plain">System.out.println(</code><code class="string">"Trying to put the byte value"</code></div><div class="line number27 index26 alt2"><code class="undefined spaces">                               </code><code class="plain">+ </code><code class="string">" in read-only buffer"</code><code class="plain">); </code></div><div class="line number28 index27 alt1"><code class="undefined spaces"> </code> </div><div class="line number29 index28 alt2"><code class="undefined spaces">            </code><code class="comments">// putting the value in readonly ByteBuffer </code></div><div class="line number30 index29 alt1"><code class="undefined spaces">            </code><code class="comments">// using putDouble() method </code></div><div class="line number31 index30 alt2"><code class="undefined spaces">            </code><code class="plain">bb1.putDouble(</code><code class="value">0</code><code class="plain">, </code><code class="string">'a'</code><code class="plain">); </code></div><div class="line number32 index31 alt1"><code class="undefined spaces">        </code><code class="plain">} </code></div><div class="line number33 index32 alt2"><code class="undefined spaces"> </code> </div><div class="line number34 index33 alt1"><code class="undefined spaces">        </code><code class="keyword">catch</code> <code class="plain">(IndexOutOfBoundsException e) { </code></div><div class="line number35 index34 alt2"><code class="undefined spaces"> </code> </div><div class="line number36 index35 alt1"><code class="undefined spaces">            </code><code class="plain">System.out.println(</code><code class="string">"Exception throws : "</code> <code class="plain">+ e); </code></div><div class="line number37 index36 alt2"><code class="undefined spaces">        </code><code class="plain">} </code></div><div class="line number38 index37 alt1"><code class="undefined spaces"> </code> </div><div class="line number39 index38 alt2"><code class="undefined spaces">        </code><code class="keyword">catch</code> <code class="plain">(ReadOnlyBufferException e) { </code></div><div class="line number40 index39 alt1"><code class="undefined spaces"> </code> </div><div class="line number41 index40 alt2"><code class="undefined spaces">            </code><code class="plain">System.out.println(</code><code class="string">"Exception throws : "</code> <code class="plain">+ e); </code></div><div class="line number42 index41 alt1"><code class="undefined spaces">        </code><code class="plain">} </code></div><div class="line number43 index42 alt2"><code class="undefined spaces">    </code><code class="plain">} </code></div><div class="line number44 index43 alt1"><code class="plain">} </code></div></div></td></tr></tbody></table></div>

chevron_right


Output:

Trying to put the byte 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.