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


Java java.nio.FloatBuffer用法及代碼示例


Buffer 對象可以稱為固定數據量的容器。緩衝區充當存儲箱或臨時暫存區域,可以在其中存儲數據並在以後根據使用情況檢索數據。 Java Buffer 類是構建 java.nio 的基礎。浮點緩衝區是通過分配創建的,分配為緩衝區的內容分配空間,通過將現有浮點數組包裝到緩衝區中,或者通過創建現有字節緩衝區的視圖。

此類定義了對浮點緩衝區的四類操作:

  • 讀取和寫入單個浮點數的絕對和相對 get 和 put 方法
  • 相對批量獲取方法,將連續的浮點序列從此緩衝區傳輸到數組中;和
  • 相對批量放置方法,將連續的浮點序列從浮點數組或其他浮點緩衝區傳輸到此緩衝區
  • 用於壓縮、複製和切片浮點緩衝區的方法。
METHODS DESCRIPTION

allocate(int capacity)

此方法分配一個新的浮點緩衝區。

array()

此方法返回支持此緩衝區的浮點數組

arrayOffset()

此方法返回緩衝區第一個元素在該緩衝區的後備數組中的偏移量

asReadOnlyBuffer()

此方法創建一個新的隻讀浮點數緩衝區,共享該緩衝區的內容。

compact()

該方法壓縮該緩衝區

compareTo(FloatBuffer that)

此方法將此緩衝區與另一個緩衝區進行比較。

duplicate()

此方法創建一個新的浮點數緩衝區來共享該緩衝區的內容。

equals(Object ob)

此方法告知此緩衝區是否等於另一個對象。

get()

該方法相對gets方法而言。

獲取(浮點[] dst)

該方法相對批量獲取方法而言。

get(float[] dst, int 偏移量, int 長度)

該方法相對批量獲取方法而言。

get(int index)

這個方法絕對是get方法。

hasArray()

此方法告知此緩衝區是否由可訪問的浮點數組支持。

hashCode()

該方法返回該緩衝區的當前哈希碼。

isDirect()

這個方法告訴我們這個浮點數緩衝區是否是直接的。

order()

該方法檢索該緩衝區的字節順序。

put(float f)

該方法相對put方法

put(float[] src)

此方法相對批量放方法

put(float[] src, int 偏移量, int 長度)

此方法相對批量放方法

put(FloatBuffer src)

相對批量投放法

put(int index, float f)

絕對放法

slice()

創建一個新的浮點緩衝區,其內容是該緩衝區內容的共享子序列。

toString()

此方法返回一個總結該緩衝區狀態的字符串。

換行(浮點[]數組)

此方法將浮點數組包裝到緩衝區中。

換行(浮點[]數組,int偏移量,int長度)

此方法將浮點數組包裝到緩衝區中。

下麵是java.nio.FloatBuffer類的一些方法的實現:

1. reset():該方法用於將該緩衝區的位置重置為之前標記的位置。

Syntax: public final FloatBuffer reset()
參數: None
返回:Returns the buffer.

Java


// Implementation of reset() method in Java 
  
import java.nio.*; 
import java.util.*; 
  
public class Example { 
  
    public static void main(String[] args) 
    { 
  
        try { 
  
            float[] arr = { 10.5f, 20.5f, 30.5f, 40.5f }; 
  
            // creating object of FloatBuffer 
            // and allocating size capacity 
            FloatBuffer x = FloatBuffer.wrap(arr); 
  
            // try to set the position at index 2 
            x.position(2); 
  
            // Set this buffer mark position 
            // using mark() method 
            x.mark(); 
  
            // try to set the position at index 4 
            x.position(4); 
  
            // display position 
            System.out.println("Pos before reset: "
                               + x.position()); 
  
            // try to call reset() to restore 
            // to the position we marked 
            x.reset(); 
  
            // display position 
            System.out.println("Pos after reset: "
                               + x.position()); 
        } 
  
        catch (InvalidMarkException e) { 
            System.out.println("New pos is less than "
                               + "the pos "
                               + " marked before "); 
            System.out.println("Exception throws: " + e); 
        } 
    } 
}
輸出
Pos before reset: 4
Pos after reset: 2

2. rewind():該方法用於倒回該緩衝區。

Syntax: public final FloatBuffer rewind()
參數: None
返回:Returns the buffer

Java


// Implementation of rewind() method in Java 
  
import java.nio.*; 
import java.util.*; 
  
public class Example2 { 
    public static void main(String[] args) 
    { 
        // defining and allocating FloatBuffer 
        // using allocate() method 
        FloatBuffer x = FloatBuffer.allocate(4); 
  
        // put char value in FloatBuffer 
        // using put() method 
        x.put(10.5f); 
        x.put(20.5f); 
  
        // print the float buffer 
        System.out.println("Buffer before operation: "
                           + Arrays.toString(x.array()) 
                           + "\nPosition: " + x.position() 
                           + "\nLimit: " + x.limit()); 
  
        // rewind the Buffer 
        // using rewind() method 
        x.rewind(); 
  
        // print the floatbuffer 
        System.out.println("\nBuffer after operation: "
                           + Arrays.toString(x.array()) 
                           + "\nPosition: " + x.position() 
                           + "\nLimit: " + x.limit()); 
    } 
}
輸出
Buffer before operation: [10.5, 20.5, 0.0, 0.0]
Position: 2
Limit: 4

Buffer after operation: [10.5, 20.5, 0.0, 0.0]
Position: 0
Limit: 4


相關用法


注:本文由純淨天空篩選整理自mayanktyagi1709大神的英文原創作品 java.nio.FloatBuffer Class in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。