Java NIO (New Input/Output), যা Java SE 1.4 তে প্রবর্তিত হয়, Java প্রোগ্রামিং ভাষায় ফাইল এবং ডিরেক্টরি ম্যানিপুলেশন, I/O অপারেশন এবং নেটওয়ার্কিংয়ের জন্য একটি নতুন API সরবরাহ করে। Java NIO তে Files এবং Paths হল এমন দুটি মৌলিক ক্লাস যা ফাইল সিস্টেমের সাথে কাজ করার জন্য ব্যবহার করা হয়। এগুলি Java NIO এর প্রধান অংশ এবং ফাইল এবং ডিরেক্টরি সম্পর্কিত বিভিন্ন অপারেশন সহজ করে তোলে।
Files এবং Paths এর ধারণা
১. Path (পাথ)
Path হল একটি নতুন ক্লাস যা Java NIO তে ফাইল এবং ডিরেক্টরি পথের প্রতিনিধিত্ব করে। এটি java.nio.file প্যাকেজের একটি অংশ এবং এটি java.nio.file.Paths এবং java.nio.file.Path ক্লাস দ্বারা ব্যবহৃত হয়।
Path ক্লাসটি একটি নির্দিষ্ট ফাইল বা ডিরেক্টরির অবস্থান নির্দেশ করে এবং এটি OS নিরপেক্ষ ফাইল পথের জন্য সমর্থন প্রদান করে। এর মানে হল যে, Path ব্যবহার করে আপনি প্ল্যাটফর্মের উপর ভিত্তি না রেখে ফাইল এবং ডিরেক্টরি অ্যাক্সেস করতে পারবেন।
Path তৈরি করার উদাহরণ:
import java.nio.file.Path;
import java.nio.file.Paths;
Path path = Paths.get("C:/Users/John/Documents/file.txt");
এখানে Paths.get() মেথডটি একটি নির্দিষ্ট পথের একটি Path অবজেক্ট তৈরি করে।
২. Files (ফাইলস)
Files ক্লাসটি ফাইল এবং ডিরেক্টরি সম্পর্কিত বিভিন্ন কাজ সম্পাদন করার জন্য বেশ কিছু স্ট্যাটিক মেথড প্রদান করে। এটি Java NIO এর মধ্যে একটি গুরুত্বপূর্ণ অংশ এবং এটি ফাইলের সাথে কাজ করার সময় ফাইল তৈরি, ফাইলের কন্টেন্ট রিড করা, ফাইল কপি করা, ফাইলের সাইজ চেক করা এবং আরও অনেক অপারেশন করতে সহায়তা করে।
Files ক্লাসের কিছু গুরুত্বপূর্ণ মেথড:
Files.exists(Path path): নির্দিষ্ট পাথের ফাইল বা ডিরেক্টরি রয়েছে কি না, তা পরীক্ষা করে।Files.readAllLines(Path path): একটি ফাইলের সমস্ত লাইন একটি লিস্টে পড়ে।Files.copy(Path source, Path target): একটি ফাইল কপি করে একটি নতুন লোকেশনে।Files.delete(Path path): নির্দিষ্ট পাথের ফাইল বা ডিরেক্টরি ডিলিট করে।Files.createDirectories(Path dir): নতুন ডিরেক্টরি তৈরি করে।
Files ব্যবহার করে ফাইলের অস্তিত্ব পরীক্ষা করার উদাহরণ:
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
Path path = Paths.get("C:/Users/John/Documents/file.txt");
if (Files.exists(path)) {
System.out.println("ফাইলটি রয়েছে!");
} else {
System.out.println("ফাইলটি নেই!");
}
এখানে Files.exists() মেথডটি চেক করে যে, নির্দিষ্ট ফাইল বা ডিরেক্টরি বিদ্যমান কিনা।
৩. Paths ক্লাস
Paths ক্লাসটি Path অবজেক্ট তৈরি করতে ব্যবহৃত হয়। এটি Paths.get() মেথডের মাধ্যমে একটি স্ট্রিং পাথকে Path অবজেক্টে রূপান্তরিত করে।
Paths.get() মেথডের উদাহরণ:
import java.nio.file.Paths;
import java.nio.file.Path;
Path path = Paths.get("C:/Users/John/Documents");
System.out.println("Path: " + path);
এখানে, Paths.get() পদ্ধতি স্ট্রিং আর্গুমেন্ট হিসেবে ফাইল পাথ নেয় এবং সেটি একটি Path অবজেক্টে কনভার্ট করে।
Java NIO তে Files এবং Paths এর সুবিধা
১. OS নিরপেক্ষ ফাইল পরিচালনা
Java NIO তে Path এবং Files ব্যবহার করে আপনি প্ল্যাটফর্ম নিরপেক্ষভাবে ফাইলের সাথে কাজ করতে পারেন, অর্থাৎ, Windows, Linux, এবং MacOS এর মধ্যে পার্থক্য ছাড়াই ফাইল সিস্টেম অপারেশন করতে পারবেন।
২. উচ্চ পারফরম্যান্স I/O অপারেশন
Java NIO ক্লাসগুলি (যেমন Path, Files) নন-ব্লকিং I/O এবং Asynchronous I/O এর জন্য উন্নত পারফরম্যান্স প্রদান করে, যা Java I/O এর তুলনায় দ্রুত I/O অপারেশন করতে সহায়তা করে।
৩. ফাইল এবং ডিরেক্টরি অপারেশন সহজ করা
Java NIO এর মাধ্যমে ফাইল কপি করা, ফাইল রিড এবং রাইট করা, ডিরেক্টরি তৈরি করা, ফাইল ডিলিট করা এবং ফাইলের পাথ পরিচালনা করার কাজগুলি অনেক সহজ হয়ে যায়। এই সকল কাজগুলি Files এবং Path ক্লাসের মাধ্যমে কম কোডের মাধ্যমে সম্পন্ন করা যায়।
Java NIO তে Files এবং Paths ক্লাসগুলি ফাইল এবং ডিরেক্টরি পরিচালনার জন্য অত্যন্ত কার্যকরী সরঞ্জাম সরবরাহ করে। Path ফাইলের পাথের প্রতিনিধিত্ব করে এবং Files ক্লাসটি ফাইল সিস্টেমের সাথে সম্পর্কিত বিভিন্ন কাজ করতে ব্যবহৃত হয়। এই দুটি ক্লাস Java NIO তে ফাইল এবং ডিরেক্টরি ম্যানিপুলেশনকে সহজ, দ্রুত এবং দক্ষ করে তোলে, বিশেষত যখন বড় আকারের I/O অপারেশন করা হয়।
Read more