গুয়াভা (Guava) হলো গুগলের একটি ওপেন-সোর্স লাইব্রেরি যা Java-তে উন্নত কার্যকারিতা এবং কার্যকর কোড লেখার জন্য বিভিন্ন ইউটিলিটি সরবরাহ করে। এটি বিশেষভাবে String handling এবং I/O performance বৃদ্ধির জন্য কার্যকর। নিচে এই দুটি ক্ষেত্রে Guava-এর ভূমিকা ব্যাখ্যা করা হলো:
Efficient String Handling
Guava-এর com.google.common.base প্যাকেজে এমন অনেক ক্লাস এবং মেথড রয়েছে যা স্ট্রিং প্রসেসিং এবং ম্যানিপুলেশনের জন্য ব্যবহৃত হয়:
১. Joiner এবং Splitter:
Joiner: একাধিক String বা Collection-এর String-কে নির্দিষ্ট ডিলিমিটার দিয়ে একত্রিত করতে ব্যবহৃত হয়।
String result = Joiner.on(", ").skipNulls().join("Apple", null, "Banana", "Cherry"); System.out.println(result); // Output: Apple, Banana, CherrySplitter: একটি String-কে বিভিন্ন সাবস্ট্রিং-এ বিভক্ত করতে ব্যবহৃত হয়।
Iterable<String> parts = Splitter.on(',') .trimResults() .omitEmptyStrings() .split("Apple, Banana, , Cherry, "); parts.forEach(System.out::println); // Output: Apple, Banana, Cherry
২. Strings Utility Class:
Guava-এর Strings ক্লাসে স্ট্রিং প্রসেসিংয়ের জন্য বিভিন্ন মেথড রয়েছে:
Strings.isNullOrEmpty(String): Null বা খালি স্ট্রিং যাচাই।Strings.padStart(String, int, char): স্ট্রিং-কে নির্দিষ্ট দৈর্ঘ্যে পূরণ।Strings.repeat(String, int): একটি স্ট্রিং বারবার পুনরাবৃত্তি।
৩. Charsets:
Guava সহজে স্ট্রিং এনকোডিংয়ের জন্য Charsets সরবরাহ করে:
String utf8String = new String(byteArray, Charsets.UTF_8);
I/O Performance Optimization
Guava-এর com.google.common.io প্যাকেজটি I/O অপারেশন সহজ এবং কার্যকর করতে বিভিন্ন টুল প্রদান করে:
১. Files Utility Class:
File to String বা Byte Conversion:
String content = Files.asCharSource(new File("example.txt"), Charsets.UTF_8).read(); byte[] bytes = Files.toByteArray(new File("example.txt"));Copying Files:
File source = new File("source.txt"); File destination = new File("destination.txt"); Files.copy(source, destination);
২. Buffered Streams:
Guava সহজে বাফারড I/O অপারেশনের জন্য ByteStreams এবং CharStreams সরবরাহ করে:
ByteStreams:
try (InputStream input = new FileInputStream("input.txt"); OutputStream output = new FileOutputStream("output.txt")) { ByteStreams.copy(input, output); }CharStreams:
try (Reader reader = new FileReader("input.txt")) { String content = CharStreams.toString(reader); }
৩. Resources Management:
Guava Closer ক্লাসের মাধ্যমে রিসোর্স ম্যানেজমেন্ট আরও কার্যকর করে:
Closer closer = Closer.create();
try {
InputStream in = closer.register(new FileInputStream("input.txt"));
OutputStream out = closer.register(new FileOutputStream("output.txt"));
ByteStreams.copy(in, out);
} catch (Throwable e) {
closer.rethrow(e);
} finally {
closer.close();
}
Guava লাইব্রেরি Java ডেভেলপারদের স্ট্রিং ম্যানিপুলেশন এবং I/O অপারেশন সহজ, কার্যকর, এবং উচ্চ-দক্ষতায় সম্পাদন করতে সহায়তা করে। এই ফিচারগুলো বড় প্রজেক্টে পারফরমেন্স বৃদ্ধি এবং কোড সিম্পলিফিকেশন নিশ্চিত করে।
Read more