当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java java.nio.ShortBuffer用法及代码示例


ShortBuffer 保存要在 I/O 操作中使用的整数值序列。 ShortBuffer 类提供以下四类针对长缓冲区的操作:

  • 读取单个 Shorts 的绝对和相对 get 方法。
  • 写入单个 Shorts 的绝对和相对 put 方法。
  • 相对批量 put 和 get 方法,将连续的 Shorts 序列从 int 数组或其他 Shorts 缓冲区传输到此缓冲区,并从该缓冲区传输到数组。

短缓冲区可以通过以下方式创建:

  • allocate():这为缓冲区的内容分配空间。
  • wrap():这会将现有的长数组包装到缓冲区中。

ShortBuffer 类的大多数方法与 ByteBuffer 定义的方法直接类似。

类别声明:

public abstract class ShortBuffer

extends Buffer

implements Comparable<ShortBuffer>

ShortBuffer类的方法:

方法 说明
ShortBuffer allocate() 该方法分配一个新的短缓冲区。
ShortBuffer array() 此方法返回支持此缓冲区的短数组。
ShortBuffer arrayOffset() 此方法返回缓冲区第一个元素在该缓冲区的后备数组中的偏移量。
ShortBuffer asReadOnlyBuffer() 此方法创建一个新的只读短缓冲区,共享该缓冲区的内容。
ShortBuffer compact() 此方法压缩此缓冲区。
ShortBuffer compareTo 此方法将此缓冲区与另一个缓冲区进行比较。
ShortBuffer duplicate() 此方法创建一个新的短缓冲区来共享该缓冲区的内容。
ShortBuffer equals() 此方法告知此缓冲区是否等于另一个对象。
get() 该方法是一个相对 get 方法,返回缓冲区当前位置的短路。
get(int index) 此方法是绝对 get 方法,并返回给定索引处的短路。
获取(int[] dst) 该方法是一个相对批量获取方法并返回该缓冲区。
get(int[] dst, int 偏移量, int 长度) 此方法相对是批量获取方法并返回此缓冲区。
ShortBuffer hasArray() 此方法告知此缓冲区是否由可访问的 int 数组支持。
ShortBuffer isDirect() 此方法告诉 int 缓冲区是否是直接的。
ShortBuffer order() 该方法检索该缓冲区的字节顺序。
ShortBuffer put(int, short) 此方法是绝对 put 方法并返回此缓冲区。
put(short s) 该方法是一个相对的 put 方法并返回该缓冲区。
put(短[] src) 此方法是相对批量放置方法并返回此缓冲区。
put(short[] src, int 偏移量, int 长度) 此方法是相对批量放置方法并返回此缓冲区。
put(ShortBuffer src) 此方法是相对批量放置方法并返回此缓冲区。
ShortBuffer slice() 此方法创建一个新的短缓冲区,其内容是该缓冲区内容的共享子序列。
ShortBuffer toString() 此方法返回一个总结该缓冲区状态的字符串。
换行(短[]数组) 此方法将短数组包装到缓冲区中。
换行(短[]数组,int偏移量,int长度) 此方法将短数组包装到缓冲区中。

以下是一些演示ShortBuffer类及其方法的程序:

示例 1:

Java


// Java program to demonstrate 
// ShortBuffer class 
  
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)100); 
            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: [100, 0, 9, 0, 0, 0, 0, 0, 0, 0]

示例 2:

Java


// Java program to demonstrate 
// ShortBuffer class 
  
import java.nio.*; 
import java.util.*; 
  
public class GFG { 
  
    public static void main(String[] args) 
    { 
  
        // Declaring the capacity of the ShortBuffer 1 
        int capacity1 = 10; 
  
        // Declaring the capacity of the ShortBuffer 2 
        int capacity2 = 10; 
  
        // Creating the ShortBuffer 
        try { 
  
            // creating object of Shortbuffer 1 
            // and allocating size capacity 
            ShortBuffer sb1 
                = ShortBuffer.allocate(capacity1); 
  
            // creating object of Shortbuffer 2 
            // and allocating size capacity 
            ShortBuffer fb2 
                = ShortBuffer.allocate(capacity2); 
  
            // putting the value in Shortbuffer 1 
            sb1.put((short)100); 
            sb1.put(2, (short)9); 
            sb1.rewind(); 
  
            // putting the value in Shortbuffer 2 
            fb2.put((short)100); 
            fb2.put(2, (short)9); 
            fb2.rewind(); 
  
            // print the ShortBuffer 1 
            System.out.println( 
                "ShortBuffer 1: "
                + Arrays.toString(sb1.array())); 
  
            // print the ShortBuffer 2 
            System.out.println( 
                "ShortBuffer 2: "
                + Arrays.toString(fb2.array())); 
  
            // checking the equality of both ShortBuffer 
            boolean fbb = sb1.equals(fb2); 
  
            // checking if else condition 
            if (fbb) 
                System.out.println("both are equal"); 
            else
                System.out.println("both are not equal"); 
        } 
  
        catch (IllegalArgumentException e) { 
            System.out.println( 
                "IllegalArgumentException catched"); 
        } 
  
        catch (ReadOnlyBufferException e) { 
            System.out.println( 
                "ReadOnlyBufferException catched"); 
        } 
    } 
}
输出
ShortBuffer 1: [100, 0, 9, 0, 0, 0, 0, 0, 0, 0]
ShortBuffer 2: [100, 0, 9, 0, 0, 0, 0, 0, 0, 0]
both are equal


相关用法


注:本文由纯净天空筛选整理自mank1083大神的英文原创作品 java.nio.ShortBuffer Class in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。