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