Java ShortBuffer array()方法及示例
java.nio.ShortBuffer 的 array() 方法用于返回支持此缓冲区的短数组(可选)。
对此缓冲区内容的修改将导致返回的数组内容被修改,反之亦然。
在调用此方法之前调用hasArray方法,以确保此缓冲区有一个可访问的支持阵列。
语法:
public final short[] array()
参数 :该方法不接受任何参数。
返回值 : 该方法返回支持缓冲区的数组。
异常。
ReadOnlyBufferException , 如果这个缓冲区是由一个数组支持的,但是是只读的。UnsupportedOperationException, 如果这个缓冲区不是由一个可访问的数组支持的。以下程序说明了 array() 方法的使用。
程序1 :
// Java program to demonstrate// array() method import java.nio.*;import java.util.*; public class GFG { public static void main(String[] args) { // Declaring the capacity of the ShortBuffer int capacity = 10; // Creating the ShortBuffer try { // creating object of Shortbuffer // and allocating size capacity ShortBuffer sb = ShortBuffer.allocate(capacity); // putting the value in Shortbuffer sb.put((short)856); sb.put(2, (short)9); sb.rewind(); // getting array from fb ShortBuffer using array() method short[] sbb = sb.array(); // printing the ShortBuffer fb System.out.println("ShortBuffer: " + Arrays.toString(sbb)); } catch (IllegalArgumentException e) { System.out.println("IllegalArgumentException catched"); } catch (ReadOnlyBufferException e) { System.out.println("ReadOnlyBufferException catched"); } }}
输出:
ShortBuffer: [856, 0, 9, 0, 0, 0, 0, 0, 0, 0]
程序2 :显示ReadOnlyBufferException
// Java program to demonstrate// array() method import java.nio.*;import java.util.*; public class GFG { public static void main(String[] args) { // Declaring the capacity of the sb int capacity1 = 10; // Declaring the capacity of the sb1 int capacity2 = 5; // Creating the ShortBuffer try { // // sb // // creating object of Shortbuffer sb // and allocating size capacity ShortBuffer sb = ShortBuffer.allocate(capacity1); // putting the value in sb sb.put((short)96); sb.put(2, (short)7); sb.put(3, (short)41); sb.rewind(); // print the ShortBuffer System.out.println("ShortBuffer sb: " + Arrays.toString(sb.array())); // // sb1 // // creating object of Shortbuffer sb1 // and allocating size capacity ShortBuffer sb1 = ShortBuffer.allocate(capacity2); // putting the value in sb1 sb1.put(1, (short)445); sb1.put(2, (short)64); sb1.rewind(); // print the ShortBuffer System.out.println("\nShortBuffer sb1: " + Arrays.toString(sb1.array())); // Creating a read-only copy of ShortBuffer // using asReadOnlyBuffer() method ShortBuffer readOnlysb = sb.asReadOnlyBuffer(); // print the ShortBuffer System.out.print("\nReadOnlyBuffer ShortBuffer: "); while (readOnlysb.hasRemaining()) System.out.print(readOnlysb.get() + ", "); // try to change readOnlysb System.out.println("\n\nTrying to get the array" + " from ReadOnlysb for editing"); short[] sbarr = readOnlysb.array(); } catch (IllegalArgumentException e) { System.out.println("IllegalArgumentException catched"); } catch (ReadOnlyBufferException e) { System.out.println("Exception thrown: " + e); } }}输出:
ShortBuffer sb: [96, 0, 7, 41, 0, 0, 0, 0, 0, 0]ShortBuffer sb1: [0, 445, 64, 0, 0]ReadOnlyBuffer ShortBuffer: 96, 0, 7, 41, 0, 0, 0, 0, 0, 0, Trying to get the array from ReadOnlysb for editingException thrown: java.nio.ReadOnlyBufferException
