Java如何使用clear方法清除缓冲区?

下面的代码向您展示如何使用clear()方法调用清除缓冲区。将澄清的方法调用设置position在缓冲到0和limit到缓冲器的容量。

我们通常clear()在读取缓冲区的全部内容并清除它以准备再次写入之后调用该方法。该clear()方法实际上是不清除缓冲区中的数据。仅清除标记,您可以在其中将数据写入缓冲区,未读的数据将被遗忘。

package org.nhooo.example.io;

import java.nio.LongBuffer;

public class BufferClear {
    public static void main(String[] args) {
        // 分配一个新的LongBuffer。
        LongBuffer buffer = LongBuffer.allocate(64);

        // 将长数组写入缓冲区。
        buffer.put(new long[] {10, 20, 30, 40, 50, 60, 70, 80});
        System.out.println("Position: " + buffer.position());
        System.out.println("Limit   : " + buffer.limit());

        buffer.flip();
        while (buffer.hasRemaining()) {
            System.out.println(buffer.get());
        }

        // clear()方法将位置设置为零并限制
        // 缓冲区的容量。
        buffer.clear();
        System.out.println("Position: " + buffer.position());
        System.out.println("Limit   : " + buffer.limit());
    }
}

代码段的输出:

Position: 8
Limit   : 64
10
20
30
40
50
60
70
80
Position: 0
Limit   : 64