下面显示的示例告诉您如何重新读取缓冲区的内容。要从缓冲区重新读取数据,我们可以使用缓冲区的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.