Java中的 DoubleBuffer get() 方法及示例
Java.nio.DoubleBuffer 类的get()方法用于读取给定缓冲区当前位置的双精度值,然后递增该位置。
句法:
public abstract double get()
返回值:此方法返回缓冲区当前位置的双精度值。
异常:如果缓冲区的当前位置不小于其限制,则此方法抛出BufferUnderflowException ,则抛出此异常。
以下是说明 get() 方法的示例:
示例 1:
// Java program to demonstrate
// get() method
import java.nio.*;
import java.util.*;
public class GFG {
public static void main(String[] args)
{
// Declaring the capacity of the FloatBuffer
int capacity = 5;
// Creating the FloatBuffer
try {
// creating object of floatbuffer
// and allocating size capacity
DoubleBuffer fb
= DoubleBuffer.allocate(capacity);
// putting the value in Doublebuffer
fb.put(8.56D);
fb.put(9.61D);
fb.put(1.24D);
fb.rewind();
// print the DoubleBuffer
System.out.println("Original DoubleBuffer: "
+ Arrays.toString(fb.array()));
// Reads the double at this buffer's current position
// using get() method
double value = fb.get();
// print the double value
System.out.println("\nDouble Value: "
+ value);
// Reads the double at this buffer's next position
// using get() method
double value1 = fb.get();
// print the double value
System.out.print("\nNext double Value: " + value1);
}
catch (IllegalArgumentException e) {
System.out.println("\nIllegalArgumentException catched");
}
catch (ReadOnlyBufferException e) {
System.out.println("\nReadOnlyBufferException catched");
}
catch (BufferUnderflowException e) {
System.out.println("\nException throws: " + e);
}
}
}
输出:
Original DoubleBuffer: [8.56, 9.61, 1.24, 0.0, 0.0]
Double Value: 8.56
Next double Value: 9.61
示例 2:
// Java program to demonstrate
// get() method
import java.nio.*;
import java.util.*;
public class GFG {
public static void main(String[] args)
{
// Declaring the capacity of the DoubleBuffer
int capacity = 3;
// Creating the DoubleBuffer
try {
// creating object of Doublebuffer
// and allocating size capacity
DoubleBuffer fb = DoubleBuffer.allocate(capacity);
// putting the value in Doublebuffer
fb.put(8.56F);
fb.put(9.61F);
// print the DoubleBuffer
System.out.println("Original DoubleBuffer: "
+ Arrays.toString(fb.array()));
// Reads the Double at this buffer's current position
// using get() method
Double value = fb.get();
// print the Double value
System.out.println("\nDouble Value: " + value);
// Reads the Double at this buffer's next position
// using get() method
System.out.print("\nsince the buffer current"
+ " position is incremented");
System.out.print(" to greater than its limit ");
Double value1 = fb.get();
// print the Double value
System.out.print("\nNext Double Value: " + value1);
}
catch (IllegalArgumentException e) {
System.out.println("\nIllegalArgumentException catched");
}
catch (ReadOnlyBufferException e) {
System.out.println("\nReadOnlyBufferException catched");
}
catch (BufferUnderflowException e) {
System.out.println("\nException throws: " + e);
}
}
}
输出:
Original DoubleBuffer: [8.5600004196167, 9.609999656677246, 0.0]
Double Value: 0.0
since the buffer current position is incremented to greater than its limit
Exception throws: java.nio.BufferUnderflowException
参考: https://docs.oracle.com/javase/9/docs/api/ Java/nio/DoubleBuffer.html#get–