这个 arrayOffset() 方法 JAVA尼奥。CharBuffer 类用于返回缓冲区第一个元素的缓冲区备份数组中的偏移量。这意味着,如果这个缓冲区由一个数组支持,那么缓冲区位置p对应于数组索引p+arrayOffset()。
null
为了检查这个缓冲区是否有后备数组, hasArray() 方法可以使用。它确保该缓冲区有一个可访问的备份阵列。
语法:
public final int arrayOffset()
返回值: 此方法返回 抵消 在缓冲区的第一个元素的缓冲区数组中。
例外情况: 这个方法抛出 ReadOnlyBufferException 如果此缓冲区由数组支持但为只读
下面的程序说明了 arrayOffset() 方法
例1:
// Java program to demonstrate // arrayOffset() method import java.nio.*; import java.util.*; public class GFG { public static void main(String[] args) { // Declaring the capacity of the CharBuffer int capacity = 10 ; // Creating the CharBuffer try { // creating object of CharBuffer // and allocating size capacity CharBuffer cb = CharBuffer.allocate(capacity); // putting the value in CharBuffer cb.put( 'a' ); cb.put( 2 , 'b' ); // print the CharBuffer System.out.println( "CharBuffer: " + Arrays.toString(cb.array())); // print the arrayOffset System.out.println( "arrayOffset: " + cb.arrayOffset()); } catch (IllegalArgumentException e) { System.out.println( "IllegalArgumentException catched" ); } catch (ReadOnlyBufferException e) { System.out.println( "Exception throws" + e); } } } |
输出:
CharBuffer: [a, , b, , , , , , , ] arrayOffset: 0
例2: 演示ReadOnlyBufferException
// Java program to demonstrate // arrayOffset() method import java.nio.*; import java.util.*; public class GFG { public static void main(String[] args) { // Declaring the capacity of the CharBuffer int capacity = 10 ; // Creating the CharBuffer try { // creating object of CharBuffer // and allocating size capacity CharBuffer fb = CharBuffer.allocate(capacity); // putting the value in CharBuffer fb.put( 'a' ); fb.put( 2 , 'b' ); fb.rewind(); // Creating a read-only copy of CharBuffer // using asReadOnlyBuffer() method CharBuffer cb1 = fb.asReadOnlyBuffer(); // print the CharBuffer System.out.print( "Read only buffer : " ); while (cb1.hasRemaining()) System.out.print(cb1.get() + ", " ); // next line System.out.println( "" ); // print the arrayOffset System.out.println( "Try to print the array offset" + " of read only buffer" ); System.out.println( "arrayOffset: " + cb1.arrayOffset()); } catch (IllegalArgumentException e) { System.out.println( "Exception throws: " + e); } catch (ReadOnlyBufferException e) { System.out.println( "Exception throws: " + e); } } } |
输出:
Read only buffer : a, , b, , , , , , , , Try to print the array offset of read only buffer Exception throws: java.nio.ReadOnlyBufferException
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END