A buffer can be read or written. To change the mode between the write mode and read mode we use the flip()
method call on the buffer.
There are few things that you should know when you change between the write mode to the read mode. A buffer have the capacity
, position
and limit
properties. The capacity
will always be the same on write or read mode. But the position
and limit
will store different information in each mode.
In write mode the limit
will be equals to the capacity, but in read mode the limit
will be equals to the last position where the last data were written. The position
on the write mode point where the data will be written in the buffer. When calling the flip()
method the position
will be set to 0
and the limit
will be set to the last value of the position
.
package org.kodejava.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());
}
}
The program will print the following result:
capacity = 1024
position = 0
limit = 1024
capacity = 1024
position = 20
limit = 1024
capacity = 1024
position = 0
limit = 20
- How do I create a string of repeated characters? - September 1, 2023
- How do I convert datetime string with optional part to a date object? - August 28, 2023
- How do I split large excel file into multiple smaller files? - April 15, 2023