當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java java.nio.LongBuffer用法及代碼示例


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]


相關用法


注:本文由純淨天空篩選整理自surbhityagi15大神的英文原創作品 java.nio.LongBuffer Class in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。