下面的代码向您展示如何使用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