ByteBuffer 保存要在 I/O 操作中使用的整數值序列。 ByteBuffer 類提供以下四類針對長緩衝區的操作:
- 讀取單個字節的絕對和相對 get 方法。
- 寫入單個字節的絕對和相對 put 方法。
- 相對批量 put 和 get 方法,將連續的字節序列從 int 數組或其他一些字節緩衝區傳輸到此緩衝區,並從此緩衝區傳輸到數組。
短緩衝區可以通過以下方式創建:
- allocate():這為緩衝區的內容分配空間。
- wrap():這會將現有的長數組包裝到緩衝區中。
ByteBuffer 類的大多數方法與 ByteBuffer 定義的方法直接類似。
類別聲明:
public abstract class ByteBuffer
extends Buffer
implements Comparable<ByteBuffer>
CharBuffer類的方法:
方法 | 說明 |
---|---|
ByteBuffer allocate() | 該方法分配一個新的字節緩衝區。 |
ByteBuffer allocateDirect() | 此方法分配一個新的直接字節緩衝區。 |
ByteBuffer array() | 此方法返回支持此緩衝區的字節數組 |
ByteBuffer arrayOffset() | 此方法返回緩衝區第一個元素在該緩衝區的後備數組中的偏移量。 |
ByteBuffer asCharBuffer() | 此方法創建此字節緩衝區的視圖作為字符緩衝區。 |
ByteBuffer asDoubleBuffer() | 此方法將此字節緩衝區的視圖創建為雙緩衝區。 |
ByteBuffer asFloatBuffer() | 此方法創建此字節緩衝區的視圖作為浮點緩衝區。 |
ByteBuffer asIntBuffer() | 此方法將此字節緩衝區的視圖創建為 int 緩衝區。 |
ByteBuffer asLongBuffer() | 此方法將此字節緩衝區的視圖創建為長緩衝區。 |
ByteBuffer asReadOnlyBuffer() | 此方法創建一個新的隻讀字節緩衝區,共享該緩衝區的內容。 |
ByteBuffer asShortBuffer() | 此方法創建此字節緩衝區的視圖作為短緩衝區。 |
ByteBuffer compact() | 此方法壓縮此緩衝區。 |
ByteBuffer compareTo() | 此方法將此緩衝區與另一個緩衝區進行比較。 |
ByteBuffer duplicate() | 此方法創建一個共享該緩衝區內容的新字節緩衝區。 |
ByteBuffer equals() | 此方法告知此緩衝區是否等於另一個對象。 |
ByteBuffer get() | 該方法是一個相對 get 方法,返回緩衝區當前位置的字節。 |
ByteBuffer get() | 該方法是一個相對批量獲取方法並返回該緩衝區。 |
ByteBuffer get() | 此方法是相對批量獲取方法並返回此緩衝區。 |
ByteBuffer get() | 此方法是絕對 get 方法,返回給定索引處的字節。 |
ByteBuffer getChar() | 該方法是一個相對 get 方法,用於讀取 char 值並返回緩衝區當前位置的 char 值。 |
ByteBuffer getChar() | 此方法是絕對 get 方法,用於讀取 char 值並返回給定索引處的 char 值。 |
ByteBuffer getDouble() | 該方法是一個相對 get 方法,用於讀取雙精度值並返回緩衝區當前位置的雙精度值。 |
ByteBuffer getDouble() | 此方法是一個絕對 get 方法,用於讀取雙精度值並返回給定索引處的雙精度值。 |
ByteBuffer getFloat() | 該方法是一個相對 get 方法,用於讀取浮點值並返回緩衝區當前位置的浮點值。 |
ByteBuffer getFloat() | 此方法是一個絕對 get 方法,用於讀取浮點值並返回給定索引處的浮點值。 |
ByteBuffer getInt() | 此方法是一個相對 get 方法,用於讀取 int 值並返回緩衝區當前位置的 int 值。 |
ByteBuffer getInt() | 此方法是絕對獲取方法,用於讀取 int 值並返回給定索引處的 int 值。 |
ByteBuffer getLong() | 該方法是一個相對 get 方法,用於讀取 long 值並返回緩衝區當前位置的 long 值。 |
ByteBuffer getLong() | 此方法是用於讀取 long 值的絕對 get 方法,並返回給定索引處的 int 值。 |
ByteBuffer getShort() | 該方法是一個相對 get 方法,用於讀取短值並返回緩衝區當前位置的long值。 |
ByteBuffer getShort() | 此方法是用於讀取短值的絕對 get 方法,並返回給定索引處的 int 值。 |
ByteBuffer hasArray() | 此方法告知此緩衝區是否由可訪問的字節數組支持。 |
ByteBuffer hashCode() | 該方法返回該緩衝區的當前哈希碼。 |
ByteBuffer isDirect() | 這個方法告訴我們這個字節緩衝區是否是直接的。 |
ByteBuffer order() | 該方法檢索該緩衝區的字節順序。 |
ByteBuffer order() | 此方法修改此緩衝區的字節順序。 |
ByteBuffer put()方法 | 此方法是相對放置方法並返回此緩衝區。 |
ByteBuffer put()方法 | 此方法是相對批量放置方法並返回此緩衝區。 |
ByteBuffer put()方法 | 此方法是相對批量放置方法並返回此緩衝區。 |
ByteBuffer put()方法 | 此方法是絕對放置方法並返回此緩衝區。 |
ByteBuffer putChar() | 該方法是用於寫入 char 值的相對 put 方法。 |
ByteBuffer putChar() | 該方法是寫入 char 值的絕對 put 方法。 |
ByteBuffer putDouble() | 該方法是用於寫入雙精度值的相對 put 方法。 |
ByteBuffer putDouble() | 該方法是用於寫入雙精度值的絕對 put 方法。 |
ByteBuffer putFloat() | 該方法是用於寫入浮點值的相對 put 方法。 |
ByteBuffer putFloat() | 該方法是用於寫入浮點值的絕對 put 方法。 |
ByteBuffer putInt() | 此方法是用於寫入int值的相對放置方法。 |
ByteBuffer putInt() | 該方法是寫入int值的絕對put方法。 |
ByteBuffer putLong() | 該方法是寫入 long 值的絕對 put 方法。 |
ByteBuffer putLong() | 該方法是用於寫入long值的相對 put 方法。 |
ByteBuffer putShort() | 該方法是寫入短值的絕對 put 方法。 |
ByteBuffer putShort() | 該方法是一種用於寫入短值的相對 put 方法。 |
ByteBuffer slice() | 此方法創建一個新的字節緩衝區,其內容是該緩衝區內容的共享子序列。 |
ByteBuffer toString() | 此方法返回一個總結該緩衝區狀態的字符串。 |
ByteBuffer wrap() | 此方法將字節數組包裝到緩衝區中。 |
ByteBuffer wrap() | 此方法將字節數組包裝到緩衝區中。 |
以下是一些演示CharBuffer類及其方法的程序:
示例 1:
Java
// Java program to demonstrate
// ByteBuffer class
import java.nio.*;
import java.util.*;
public class GFG {
public static void main(String[] args)
{
// Declaring the capacity of the ByteBuffer
int capacity = 4;
// Creating the ByteBuffer
try {
// creating object of ByteBuffer
// and allocating size capacity
ByteBuffer bb = ByteBuffer.allocate(capacity);
// putting the int to byte typecast value
// in ByteBuffer using putInt() method
bb.put((byte)10);
bb.put((byte)20);
bb.put((byte)30);
bb.put((byte)40);
bb.rewind();
// print the ByteBuffer
System.out.println(
"Original ByteBuffer: "
+ Arrays.toString(bb.array()));
}
catch (IllegalArgumentException e) {
System.out.println(
"IllegalArgumentException catched");
}
catch (ReadOnlyBufferException e) {
System.out.println(
"ReadOnlyBufferException catched");
}
}
}
輸出
Original ByteBuffer: [10, 20, 30, 40]
示例 2:
Java
// Java program to demonstrate
// ByteBuffer class
import java.nio.*;
import java.util.*;
public class GFG {
public static void main(String[] args)
{
// Declaring the capacity of the ByteBuffer
int capacity = 50;
// Creating the ByteBuffer
try {
// creating object of ByteBuffer
// and allocating size capacity
ByteBuffer bb = ByteBuffer.allocate(capacity);
// changeing bytebuffer view as char buffer
// and putting a string value
bb.asCharBuffer().put("GeeksForGeeks");
// Declaring char variable c
char c;
// print the ByteBuffer
System.out.print("Char buffer : ");
while ((c = bb.getChar()) != 0)
System.out.print(c + " ");
System.out.println();
}
catch (IllegalArgumentException e) {
System.out.println("Exception thrown : " + e);
}
catch (ReadOnlyBufferException e) {
System.out.println("Exception thrown : " + e);
}
}
}
輸出
Char buffer : G e e k s F o r G e e k s
相關用法
- Java java.nio.ByteOrder用法及代碼示例
- Java java.nio.Buffer用法及代碼示例
- Java java.nio.IntBuffer用法及代碼示例
- Java java.nio.file.FileStore用法及代碼示例
- Java java.nio.FloatBuffer用法及代碼示例
- 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.file.attribute.FileTime用法及代碼示例
- Java java.nio.file.SimpleFileVisitor用法及代碼示例
- Java java.nio.file.FileSystems用法及代碼示例
- Java java.nio.CharBuffer用法及代碼示例
- Java java.nio.file.FileSystem用法及代碼示例
- Java java.nio.file.Paths用法及代碼示例
- Java java.net.SocketException用法及代碼示例
注:本文由純淨天空篩選整理自mank1083大神的英文原創作品 java.nio.ByteBuffer Class in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。