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
相关用法
- Java java.nio.ByteBuffer用法及代码示例
- Java java.nio.IntBuffer用法及代码示例
- Java java.nio.file.FileStore用法及代码示例
- Java java.nio.file.LinkPermission用法及代码示例
- Java java.nio.ShortBuffer用法及代码示例
- Java java.nio.DoubleBuffer用法及代码示例
- Java java.nio.channels.spi.SelectorProvider用法及代码示例
- Java java.nio.charset.CoderResult用法及代码示例
- Java java.nio.charset.CodingErrorAction用法及代码示例
- Java java.nio.channels.spi.AsynchronousChannelProvider用法及代码示例
- Java java.nio.charset.CharsetEncoder用法及代码示例
- Java java.nio.file.attribute.AclEntry用法及代码示例
- Java java.nio.charset.Charset用法及代码示例
- Java java.nio.LongBuffer用法及代码示例
- Java java.nio.channels.Selector用法及代码示例
- Java java.nio.file.spi.FileTypeDetector用法及代码示例
- Java java.nio.ByteOrder用法及代码示例
- Java java.nio.file.attribute.FileTime用法及代码示例
- Java java.nio.file.SimpleFileVisitor用法及代码示例
- Java java.nio.file.FileSystems用法及代码示例
- Java java.nio.CharBuffer用法及代码示例
- Java java.nio.Buffer用法及代码示例
- Java java.nio.file.FileSystem用法及代码示例
- Java java.nio.file.Paths用法及代码示例
- Java java.net.SocketException用法及代码示例
注:本文由纯净天空筛选整理自mayanktyagi1709大神的英文原创作品 java.nio.FloatBuffer Class in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。