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


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。