By calling the clear() method on buffer object, you can
perform below things in one shot.
a.
Set the current position back to 0.
b.
Set the limit of the buffer to capacity
(Capacity of the buffer is set at the time of creation)
c.
Set the mark value to -1 (mark will be
undefined state).
Test.java
package com.sample.nio; import java.nio.ByteBuffer; public class Test { private static final String ALPHABETS = "abcdefghijklmnopqrstuvwxyz"; private static void printStats(ByteBuffer byteBuffer) { int currentPosition = byteBuffer.position(); int activeElePosition = byteBuffer.limit(); System.out.println("position : " + currentPosition + ", limit : " + activeElePosition); System.out.println("\n"); } public static void main(String args[]) throws Exception { /* Define new byte buffer of capacity 11 */ ByteBuffer byteBuffer = ByteBuffer.allocate(26); System.out.println("Before inserting the data into buffer"); printStats(byteBuffer); for (int i = 0; i < ALPHABETS.length(); i++) { byteBuffer.put((byte) ALPHABETS.charAt(i)); } System.out.println("After inserting 26 characters into the buffer"); printStats(byteBuffer); byteBuffer.clear(); System.out.println("After calling clear() api on the buffer"); printStats(byteBuffer); System.out.println("Setting the limit to 10"); byteBuffer.limit(10); printStats(byteBuffer); byteBuffer.clear(); System.out.println("After calling clear() api on the buffer"); printStats(byteBuffer); } }
Output
Before inserting the data into buffer position : 0, limit : 26 After inserting 26 characters into the buffer position : 26, limit : 26 After calling clear() api on the buffer position : 0, limit : 26 Setting the limit to 10 position : 0, limit : 10 After calling clear() api on the buffer position : 0, limit : 26
No comments:
Post a Comment