LongBuffer 保存要在 I/O 操作中使用的long值序列。 LongBuffer 類提供以下四類針對長緩衝區的操作:
- 讀取和寫入單個長整型的絕對和相對 get 和 put 方法。
- 相對批量獲取方法,將連續的長整型序列從此緩衝區傳輸到數組中。
- 相對批量放置方法,將連續的長序列從長數組或其他長緩衝區傳輸到此緩衝區。
- 一種壓縮長緩衝區的方法。
長緩衝區可以通過以下方式創建:
- allocate()方法,為緩衝區的內容分配空間,
- wrap() 方法,將現有的長數組包裝到緩衝區中,或者
- 通過創建現有字節緩衝區的視圖。
LongBuffer 類的大多數方法與 ByteBuffer 定義的方法直接類似。
用法:類別聲明
public abstract class LongBuffer extends Buffer implements Comparable<LongBuffer>
LongBuffer類的所有方法如下:
方法 | 說明 |
---|---|
allocate(int capacity) | 該方法分配一個新的長緩衝區。 |
array() | 此方法返回支持此緩衝區的長數組。 |
arrayOffset() | 此方法返回緩衝區第一個元素在該緩衝區的後備數組中的偏移量。 |
asReadOnlyBuffer() | 此方法創建一個新的隻讀長緩衝區,共享該緩衝區的內容。 |
clear() | 該方法會清除該緩衝區。 |
compact() | 此方法壓縮此緩衝區。 |
compareTo(LongBuffer that) | 此方法將此緩衝區與另一個緩衝區進行比較。 |
duplicate() | 此方法創建一個新的長緩衝區來共享該緩衝區的內容。 |
equals(Object ob) | 此方法告知此緩衝區是否等於另一個對象。 |
flip() | 該方法翻轉該緩衝區。 |
get() | 該方法是一個相對 get 方法,返回緩衝區當前位置的 long。 |
get(int index) | 此方法是絕對 get 方法,返回給定索引處的 long。 |
獲取(長[] dst) | 該方法是一個相對批量獲取方法並返回該緩衝區。 |
get(long[] dst, int 偏移量, int 長度) | 該方法是一個相對批量獲取方法並返回該緩衝區。 |
hasArray() | 此方法告知此緩衝區是否由可訪問的長數組支持。 |
hashCode() | 該方法返回該緩衝區的當前哈希碼。 |
isDirect() | 這個方法告訴我們這個長緩衝區是否是直接的。 |
limit(int newLimit) | 此方法設置此緩衝區的限製。 |
mark() | 此方法將此緩衝區的標記設置在其位置。 |
order() | 該方法檢索該緩衝區的字節順序。 |
position(int newPosition) | 該方法設置該緩衝區的位置。 |
put(int index, long l) | 此方法是絕對 put 方法並返回此緩衝區。 |
put(long l) | 該方法是一個相對的 put 方法並返回該緩衝區。 |
put(長[] src) | 此方法是相對批量放置方法並返回此緩衝區。 |
put(long[] src, int 偏移量, int 長度) | 此方法是相對批量放置方法並返回此緩衝區。 |
put(LongBuffer src) | 此方法是相對批量放置方法並返回此緩衝區。 |
reset() | 此方法將此緩衝區的位置重置為先前標記的位置。 |
rewind() | 此方法倒回此緩衝區。 |
slice() | 此方法創建一個新的長緩衝區,其內容是該緩衝區內容的共享子序列。 |
toString() | 此方法返回一個總結該緩衝區狀態的字符串。 |
換行(長[]數組) | 此方法將長數組包裝到緩衝區中。 |
包裝(長[]數組,int偏移量,int長度) | 此方法將長數組包裝到緩衝區中。 |
以下是一些演示LongBuffer類及其方法的程序:
示例 1:
Java
// Java program to demonstrate LongBuffer class
// Importing input output classes
import java.nio.*;
// Importing all utility classes
import java.util.*;
// Main Class
public class GFG {
// Main driver method
public static void main(String[] args)
{
// Declaring and initializing variable to
// the capacity of the LongBuffer
int capacity = 5;
// try block to check for exceptions
try {
// creating object of Longbuffer
// and allocating size capacity
LongBuffer ib = LongBuffer.allocate(capacity);
// Adding elements to the objects of Longbuffer
// class
// using the pur() method
ib.put(9);
ib.put(8);
ib.put(5);
ib.rewind();
// print the original LongBuffer
// using standard toString() method
System.out.println(
"Original LongBuffer: "
+ Arrays.toString(ib.array()));
// Reads the Long at this buffer's current
// position using get() method
Long value = ib.get();
// Print the Long value
System.out.println("Long Value: " + value);
// Reads the Long at this buffer's next position
// using get() method
Long value1 = ib.get();
// Agan, now print the Long value
System.out.print("Next Long Value: " + value1);
}
// Catch blocks to handle the exceptions
// Catch block 1
catch (IllegalArgumentException e) {
// Print the message when there is illegal
// arguments
System.out.println(
"IllegalArgumentException catched");
}
// Catch block 2
catch (ReadOnlyBufferException e) {
// Print statement when an exception is encountered
System.out.println(
"ReadOnlyBufferException catched");
}
// Catch block 3
catch (BufferUnderflowException e) {
// Print statement when an exception is encountered
System.out.println("Exception throws: " + e);
}
}
}
輸出
Original LongBuffer: [9, 8, 5, 0, 0] Long Value: 9 Next Long Value: 8
示例 2:
Java
// Java program to demonstrate LongBuffer class
// Importing required libraries
import java.nio.*;
import java.util.*;
// Main Class
public class GFG {
public static void main(String[] args)
{
// Declaring and initializing variable to
// capacity of the LongBuffer
int Capacity = 10;
// Creating the LongBuffer
// creating object of Longbuffer
// and allocating size capacity
LongBuffer ib = LongBuffer.allocate(Capacity);
// Inserting the value in Longbuffer
// Custom entries
ib.put(11);
ib.put(5, 22);
// Print all the elements inside Longbuffer by
// use of Arrays.toString() method
System.out.println("LongBuffer: "
+ Arrays.toString(ib.array()));
}
}
輸出
LongBuffer: [11, 0, 0, 0, 0, 22, 0, 0, 0, 0]
相關用法
- Java java.nio.ByteBuffer用法及代碼示例
- 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.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用法及代碼示例
注:本文由純淨天空篩選整理自surbhityagi15大神的英文原創作品 java.nio.LongBuffer Class in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。