Java如何在写入和读取之间更改缓冲模式?
可以读取或写入缓冲区。为了在写模式和读模式之间切换模式,我们flip()在缓冲区上使用了方法调用。
在写模式与读模式之间进行切换时,您应该了解的几件事。缓冲器具有capacity,position和limit属性。该capacity会一直在写或读模式相同。但是position和limit会在每种模式下存储不同的信息。
在写模式下,limit它将等于容量,但在读模式下,limit将等于写入最后数据的最后位置。在position对写入模式地步的数据将在缓冲区中写入。调用flip()方法时,position将设置为0,limit将设置为的最后一个值position。
package org.nhooo.example.io;
import java.nio.CharBuffer;
public class BufferFlip {
public static void main(String[] args) {
CharBuffer buffer = CharBuffer.allocate(1024);
System.out.println("capacity = " + buffer.capacity());
System.out.println("position = " + buffer.position());
System.out.println("limit = " + buffer.limit());
buffer.put("Java NIO Programming");
System.out.println("capacity = " + buffer.capacity());
System.out.println("position = " + buffer.position());
System.out.println("limit = " + buffer.limit());
buffer.flip();
System.out.println("capacity = " + buffer.capacity());
System.out.println("position = " + buffer.position());
System.out.println("limit = " + buffer.limit());
}
}该程序将打印以下结果:
capacity = 1024 position = 0 limit = 1024 capacity = 1024 position = 20 limit = 1024 capacity = 1024 position = 0 limit = 20