关于NIO Buffer中的3个重要状态属性的含义: postion, limit与capacity。
public class NioTest
{
public static void main(String[] args) {
IntBuffer buffer = IntBuffer.allocate(10); System.out.println("capacity:" + buffer.capacity()); for(int i = 0 ; i < 5; i++){
int randomNumber = new SecureRandom().nextInt(20);
buffer.put(randomNumber);
} System.out.println("before flip limit: " + buffer.limit()); buffer.flip(); System.out.println("after flip limit: " + buffer.limit()); while (buffer.hasRemaining()){
System.out.println("position: " + buffer.position());
System.out.println("limit: " + buffer.limit());
System.out.println("capacity: " + buffer.capacity());
System.out.println(buffer.get());
}
}
}
输出结果:
capacity:10
before flip limit: 10
after flip limit: 5
position: 0
limit: 5
capacity: 10
7
position: 1
limit: 5
capacity: 10
14
position: 2
limit: 5
capacity: 10
11
position: 3
limit: 5
capacity: 10
14
position: 4
limit: 5
capacity: 10
0