当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。