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-