當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。