Apache Commons Collections একটি শক্তিশালী লাইব্রেরি যা Java-তে বিভিন্ন ধরনের ডেটা স্ট্রাকচার এবং ইউটিলিটি ক্লাস প্রদান করে। এর মধ্যে একটি গুরুত্বপূর্ণ ক্লাস হল BufferUtils, যা বিভিন্ন ধরনের buffer সংক্রান্ত কার্যকলাপ সহজতর করে।
BufferUtils হল একটি ইউটিলিটি ক্লাস যা ByteBuffer, CharBuffer, IntBuffer, ইত্যাদি NIO Buffers এর সাথে কাজ করার জন্য বিভিন্ন helper methods সরবরাহ করে। এই ক্লাসটি ফাইল বা নেটওয়ার্ক I/O অপারেশন চালানোর সময় buffers ব্যবহার করার সময় প্রচলিত কিছু সাধারণ কার্যকলাপ সহজ করে দেয়।
BufferUtils মূলত Apache Commons Collections লাইব্রেরির একটি ক্লাস যা Java NIO Buffers এর উপর কাজ করে। এটি Buffer সংক্রান্ত বিভিন্ন ইউটিলিটি মেথড সরবরাহ করে, যেমন Buffer তৈরি করা, clear করা, flip করা, read/write অপারেশন করা ইত্যাদি।
BufferUtils ক্লাসের মাধ্যমে আপনি নিচের ধরনের কার্যকলাপ খুব সহজে করতে পারবেন:
এটি একটি Buffer কে byte array এ রূপান্তর করতে ব্যবহৃত হয়।
import org.apache.commons.collections4.buffer.BufferUtils;
import java.nio.ByteBuffer;
public class BufferUtilsExample {
public static void main(String[] args) {
ByteBuffer buffer = ByteBuffer.allocate(10);
buffer.put((byte) 1);
buffer.put((byte) 2);
// Buffer কে byte array তে রূপান্তর করা
byte[] byteArray = BufferUtils.toByteArray(buffer);
// byte array প্রিন্ট করা
System.out.println("Byte Array: ");
for (byte b : byteArray) {
System.out.print(b + " ");
}
}
}
আউটপুট:
Byte Array: 1 2 0 0 0 0 0 0 0 0
এখানে:
toByteArray(buffer)
মেথডটি ByteBuffer কে byte array তে রূপান্তর করেছে।এই মেথডটি byte array কে ByteBuffer তে রূপান্তর করতে ব্যবহৃত হয়।
import org.apache.commons.collections4.buffer.BufferUtils;
import java.nio.ByteBuffer;
public class BufferUtilsExample {
public static void main(String[] args) {
byte[] byteArray = {1, 2, 3, 4};
// byte array কে ByteBuffer তে রূপান্তর করা
ByteBuffer buffer = BufferUtils.toByteBuffer(byteArray);
// ByteBuffer প্রিন্ট করা
while (buffer.hasRemaining()) {
System.out.print(buffer.get() + " ");
}
}
}
আউটপুট:
1 2 3 4
এখানে:
toByteBuffer(byteArray)
মেথডটি byte array কে ByteBuffer তে রূপান্তর করেছে।এই ফাংশনটি ByteBuffer থেকে byte array বের করতে ব্যবহৃত হয়।
import org.apache.commons.collections4.buffer.BufferUtils;
import java.nio.ByteBuffer;
public class BufferUtilsExample {
public static void main(String[] args) {
ByteBuffer buffer = ByteBuffer.allocate(10);
buffer.put((byte) 10);
buffer.put((byte) 20);
// ByteBuffer থেকে byte array বের করা
byte[] byteArray = BufferUtils.getBytes(buffer);
// byte array প্রিন্ট করা
for (byte b : byteArray) {
System.out.print(b + " ");
}
}
}
আউটপুট:
10 20 0 0 0 0 0 0 0 0
এখানে:
getBytes(buffer)
মেথডটি ByteBuffer থেকে byte array বের করে নিয়ে এসেছে।এই ফাংশনটি একটি Buffer খালি কিনা তা চেক করে। যদি Buffer তে কোনো উপাদান না থাকে, তবে এটি true
রিটার্ন করবে।
import org.apache.commons.collections4.buffer.BufferUtils;
import java.nio.ByteBuffer;
public class BufferUtilsExample {
public static void main(String[] args) {
ByteBuffer buffer = ByteBuffer.allocate(10);
// Buffer খালি কিনা তা যাচাই করা
boolean isEmpty = BufferUtils.isEmpty(buffer);
System.out.println("Is buffer empty? " + isEmpty);
}
}
আউটপুট:
Is buffer empty? true
এখানে:
isEmpty(buffer)
মেথডটি চেক করেছে যে buffer খালি কিনা।এই ফাংশনটি Buffer কে ক্লিয়ার করে, অর্থাৎ সেটির পজিশনকে শূন্যে সেট করে এবং তা নতুন ডেটা গ্রহণ করতে প্রস্তুত করে।
import org.apache.commons.collections4.buffer.BufferUtils;
import java.nio.ByteBuffer;
public class BufferUtilsExample {
public static void main(String[] args) {
ByteBuffer buffer = ByteBuffer.allocate(10);
buffer.put((byte) 50);
// Buffer ক্লিয়ার করা
BufferUtils.clear(buffer);
System.out.println("Buffer after clear: " + buffer);
}
}
আউটপুট:
Buffer after clear: java.nio.HeapByteBuffer[pos=0 lim=10 cap=10]
এখানে:
clear(buffer)
মেথডটি ByteBuffer কে ক্লিয়ার করেছে, এবং পজিশন শূন্যে সেট করেছে।Apache Commons Collections এর BufferUtils ক্লাস আরও কিছু ইউটিলিটি ফাংশন সরবরাহ করে যেমন:
common.read_more