Java如何重新读取缓冲区的内容?

下面显示的示例告诉您如何重新读取缓冲区的内容。要从缓冲区重新读取数据,我们可以使用缓冲区的rewind()方法。该方法将位置重新设置为0限制不变,但仍保持可从缓冲区读取多少数据的值。

package org.nhooo.example.io;

import java.nio.CharBuffer;

public class BufferRewind {
    public static void main(String[] args) {
        CharBuffer buffer = CharBuffer.allocate(1024);
        buffer.put("The quick brown fox jumps over the lazy dog.");
        buffer.flip();

        // 使用get()方法调用读取缓冲区的数据。
        while (buffer.hasRemaining()) {
            System.out.print(buffer.get());
        }
        System.out.println();

        // 倒带缓冲区会将位置设置回0。
        // 我们倒回缓冲区,以便我们可以重新读取缓冲区
        // 数据用于其他目的。
        buffer.rewind();

        // 重新读取缓冲区并将其数据附加到StringBuilder
        // 目的。
        StringBuilder bufferText = new StringBuilder();
        while (buffer.hasRemaining()) {
            bufferText.append(buffer.get());
        }
        System.out.println(bufferText);
    }
}

代码段的输出:

The quick brown fox jumps over the lazy dog.
The quick brown fox jumps over the lazy dog.