Java ShortBuffer put(int, short)方法及示例
java.nio.ShortBuffer 类的 put() 方法是用来把给定的short写到这个缓冲区的给定索引处。
语法:
public abstract ShortBuffer put(int index, short s)
参数:
- index :这个参数指定了将被写入短值的索引,它是可选的。
- s :这个参数指定了要写入的短值。
返回值 :该方法返回这个 缓冲区
异常:
- IndexOutOfBoundsException – 如果索引为负数或不小于缓冲区的限制。
- ReadOnlyBufferException – 如果这个缓冲区是只读的。
下面的程序说明了 put() 方法。
程序1 :
// Java program to demonstrate put() method
import java.nio.*;
import java.util.*;
public class GFG {
public static void main(String[] args)
{
// Declaring the capacity of the ShortBuffer
int capacity = 3;
// Creating the ShortBuffer
try {
// creating object of shortbuffer
// and allocating size capacity
ShortBuffer sb
= ShortBuffer.allocate(capacity);
// putting the value in shortbuffer
// using put() at index 0
sb.put(0, (short)400);
// putting the value in shortbuffer
// using put() at index 2
sb.put(2, (short)1000);
// putting the value in shortbuffer
// using put() at index 1
sb.put(1, (short)30);
// rewinding the shortbuffer
sb.rewind();
// print the ShortBuffer
System.out.println("Original ShortBuffer: "
+ Arrays.toString(sb.array()));
}
catch (IndexOutOfBoundsException e) {
System.out.println("Exception throws: " + e);
}
catch (ReadOnlyBufferException e) {
System.out.println("Exception throws: " + e);
}
}
}
输出:
Original ShortBuffer: [400, 30, 1000]
程序2 :
为了演示IndexOutOfBoundsException。
// Java program to demonstrate put() method
import java.nio.*;
import java.util.*;
public class GFG {
public static void main(String[] args)
{
// Declaring the capacity of the ShortBuffer
int capacity = 3;
// Creating the ShortBuffer
try {
// creating object of shortbuffer
// and allocating size capacity
ShortBuffer sb
= ShortBuffer.allocate(capacity);
// putting the value in shortbuffer
// using put() at index 0
sb.put(0, (short)31);
// putting the value in shortbuffer
// using put() at index 2
sb.put(2, (short)49);
// putting the value in shortbuffer
// using put() at index -1
System.out.println("Trying to put the value"
+ " at the negative index");
sb.put(-1, (short)27);
}
catch (IndexOutOfBoundsException e) {
System.out.println("Exception throws: " + e);
}
catch (ReadOnlyBufferException e) {
System.out.println("Exception throws: " + e);
}
}
}
输出:
Trying to put the value at the negative index
Exception throws: java.lang.IndexOutOfBoundsException
程序3 :演示ReadOnlyBufferException。
// Java program to demonstrate put() method
import java.nio.*;
import java.util.*;
public class GFG {
public static void main(String[] args)
{
// Declaring the capacity of the ShortBuffer
int capacity = 3;
// Creating the ShortBuffer
try {
// creating object of shortbuffer
// and allocating size capacity
// using allocate() method
ShortBuffer sb
= ShortBuffer.allocate(capacity);
// Creating a read-only copy of ShortBuffer
// using asReadOnlyBuffer() method
ShortBuffer sb1 = sb.asReadOnlyBuffer();
System.out.println("Trying to put the float value"
+ " in read only buffer");
// putting the value in readonly shortbuffer
// using put() method
sb1.put(0, (short)13);
}
catch (BufferOverflowException e) {
System.out.println("Exception throws: " + e);
}
catch (ReadOnlyBufferException e) {
System.out.println("Exception throws: " + e);
}
}
}
输出:
Trying to put the float value in read only buffer
Exception throws: java.nio.ReadOnlyBufferException
参考资料: https://docs.oracle.com/javase/9/docs/api/java/nio/ShortBuffer.html#put-int-short-