Apache Commons IO হল একটি ওপেন সোর্স লাইব্রেরি যা Java I/O (Input/Output) অপারেশনগুলিকে আরও সহজ এবং কার্যকরী করতে ডিজাইন করা হয়েছে। এটি Apache Commons প্রজেক্টের একটি অংশ, যা Java প্রোগ্রামিং ভাষায় বিভিন্ন ইউটিলিটি সরবরাহ করে। Apache Commons IO লাইব্রেরিটি Java-তে ফাইল এবং ডিরেক্টরি ম্যানিপুলেশন, স্ট্রিম প্রক্রিয়াকরণ, এবং ফাইল সিস্টেম সম্পর্কিত কাজগুলো সহজে করার জন্য বিভিন্ন ধরনের utility classes সরবরাহ করে।
এই লাইব্রেরি বিশেষভাবে Java I/O API-র ওপর অতিরিক্ত সুবিধা প্রদান করে, যার মাধ্যমে ফাইল কপি, রিডিং, রাইটিং, ডিরেক্টরি ট্রাভার্সাল, এবং ফাইল ফিল্টারিং ইত্যাদি কাজগুলি কার্যকরীভাবে সম্পাদন করা যায়। Commons IO ব্যবহার করার মাধ্যমে I/O সম্পর্কিত অনেক সাধারণ কাজ যেমন ফাইল কপি, ডিরেক্টরি স্ক্যান, ফাইল স্ট্রিম অপারেশন ইত্যাদি দ্রুত এবং সহজে করা যায়।
Apache Commons IO লাইব্রেরির মধ্যে অনেক ধরনের ইউটিলিটি ক্লাস রয়েছে যা ফাইল এবং ডিরেক্টরি ম্যানিপুলেশন সহজ করে তোলে। কিছু গুরুত্বপূর্ণ বৈশিষ্ট্য হল:
FileUtils হল সবচেয়ে বেশি ব্যবহৃত একটি ক্লাস, যা ফাইল ম্যানিপুলেশন সম্পর্কিত সাধারণ কাজ যেমন ফাইল কপি, রিড, রাইট, ফাইলের আকার পাওয়া, এবং ফাইল মুছে ফেলা ইত্যাদি সহজ করে তোলে।
উদাহরণ: FileUtils ব্যবহার
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
public class FileUtilsExample {
public static void main(String[] args) throws IOException {
File sourceFile = new File("source.txt");
File destinationFile = new File("destination.txt");
// Copy file from source to destination
FileUtils.copyFile(sourceFile, destinationFile);
// Read file content to string
String content = FileUtils.readFileToString(sourceFile, "UTF-8");
System.out.println("File Content: " + content);
}
}
এখানে:
copyFile()
মেথড ব্যবহার করে ফাইল কপি করা হয়েছে।readFileToString()
মেথড ব্যবহার করে ফাইলের কনটেন্ট স্ট্রিং আকারে পড়া হয়েছে।IOUtils ক্লাসটি InputStream, OutputStream, Reader, এবং Writer স্ট্রিমগুলির সাথে কাজ করার জন্য একাধিক ইউটিলিটি মেথড সরবরাহ করে। এটি স্ট্রিমের মধ্যে ডেটা কপি, স্ট্রিম ক্লোজ, এবং স্ট্রিম প্রক্রিয়া সম্পর্কিত অন্যান্য কাজগুলো সহজ করে তোলে।
উদাহরণ: IOUtils ব্যবহার
import org.apache.commons.io.IOUtils;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class IOUtilsExample {
public static void main(String[] args) throws IOException {
FileInputStream input = new FileInputStream("source.txt");
FileOutputStream output = new FileOutputStream("destination.txt");
// Copy content from input stream to output stream
IOUtils.copy(input, output);
// Close streams safely
IOUtils.closeQuietly(input);
IOUtils.closeQuietly(output);
}
}
এখানে:
IOUtils.copy()
ব্যবহার করে একটি স্ট্রিম থেকে অন্য স্ট্রিমে ডেটা কপি করা হয়েছে।IOUtils.closeQuietly()
স্ট্রিমগুলো নিরাপদে ক্লোজ করতে ব্যবহৃত হয়েছে।FilenameUtils ক্লাসটি ফাইল নাম এবং পাথ পরিচালনা করতে সাহায্যকারী ইউটিলিটি ফাংশন সরবরাহ করে। এটি ফাইলের এক্সটেনশন, পাথ এবং ফাইল নাম সম্পর্কিত কাজগুলো সহজ করে তোলে।
উদাহরণ: FilenameUtils ব্যবহার
import org.apache.commons.io.FilenameUtils;
public class FilenameUtilsExample {
public static void main(String[] args) {
String filePath = "/home/user/documents/file.txt";
// Get file extension
String extension = FilenameUtils.getExtension(filePath);
System.out.println("File Extension: " + extension);
// Get file name without extension
String baseName = FilenameUtils.getBaseName(filePath);
System.out.println("Base Name: " + baseName);
// Get directory path
String directory = FilenameUtils.getFullPath(filePath);
System.out.println("Directory: " + directory);
}
}
এখানে:
getExtension()
ফাইলের এক্সটেনশন রিটার্ন করেছে।getBaseName()
ফাইল নাম (এক্সটেনশন ছাড়া) প্রদান করেছে।getFullPath()
ফাইলের ডিরেক্টরি পথ রিটার্ন করেছে।DirectoryWalker হল একটি শক্তিশালী টুল যা ডিরেক্টরি এবং তার সাব-ডিরেক্টরি ট্রাভার্স করার জন্য ব্যবহৃত হয়। এটি বিভিন্ন শর্ত অনুযায়ী ফাইল এবং ডিরেক্টরি নিয়ে কাজ করতে পারে।
উদাহরণ: DirectoryWalker ব্যবহার
import org.apache.commons.io.filefilter.TrueFileFilter;
import org.apache.commons.io.filefilter.DirectoryFileFilter;
import org.apache.commons.io.DirectoryWalker;
import java.io.File;
import java.io.IOException;
import java.util.List;
public class DirectoryWalkerExample extends DirectoryWalker {
public DirectoryWalkerExample() {
super(DirectoryFileFilter.DIRECTORY, TrueFileFilter.TRUE);
}
@Override
protected void handleFile(File file, int depth, List<File> results) throws IOException {
System.out.println("Found file: " + file.getAbsolutePath());
}
public static void main(String[] args) throws IOException {
DirectoryWalkerExample walker = new DirectoryWalkerExample();
walker.walk(new File("/path/to/directory"), null);
}
}
এখানে:
DirectoryWalker
ব্যবহার করে ডিরেক্টরি এবং তার সাব-ডিরেক্টরি ট্রাভার্স করা হয়েছে।handleFile()
মেথডে প্রতিটি ফাইল পাওয়া গেলে তার পাথ প্রিন্ট করা হয়েছে।আপনি যদি Apache Commons IO ব্যবহার করতে চান, তবে আপনাকে এটি আপনার প্রোজেক্টে অন্তর্ভুক্ত করতে হবে। যদি আপনি Maven ব্যবহার করেন, তবে আপনার pom.xml ফাইলে নিম্নলিখিত ডিপেনডেন্সি যোগ করতে হবে:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-io</artifactId>
<version>2.11.0</version>
</dependency>
এটি Apache Commons IO লাইব্রেরি আপনার প্রোজেক্টে যোগ করবে, যার মাধ্যমে আপনি FileUtils, IOUtils, FilenameUtils, DirectoryWalker এবং অন্যান্য ফিচার ব্যবহার করতে পারবেন।
Apache Commons IO লাইব্রেরি Java I/O অপারেশনগুলিকে সহজ এবং কার্যকরী করে তোলে। এতে FileUtils, IOUtils, FilenameUtils, DirectoryWalker এবং অন্যান্য শক্তিশালী ইউটিলিটি ক্লাস রয়েছে যা ফাইল এবং ডিরেক্টরি সম্পর্কিত কাজগুলোকে আরও সহজ এবং কার্যকরী করে তোলে। এই লাইব্রেরিটি Java I/O সম্পর্কিত সাধারণ কাজ যেমন ফাইল কপি, রিড, রাইট, ডিরেক্টরি ট্রাভার্সাল, স্ট্রিম ম্যানিপুলেশন ইত্যাদি সহজ এবং দ্রুত করে তোলে।
Apache Commons IO হল একটি ওপেন সোর্স Java লাইব্রেরি যা I/O (Input/Output) অপারেশনগুলোকে সহজতর এবং কার্যকরী করতে সাহায্য করে। এটি Java I/O API এর বাইরের কিছু অতিরিক্ত ইউটিলিটি ক্লাস সরবরাহ করে যা ফাইল অপারেশন, স্ট্রিম ম্যানিপুলেশন, ফাইল ফিল্টারিং, ফাইল কনভার্সন এবং অন্যান্য I/O সম্পর্কিত কাজগুলোকে আরও সহজ, দ্রুত এবং শক্তিশালী করে তোলে। Apache Commons IO লাইব্রেরি বিশেষভাবে উন্নত এবং অপটিমাইজড ফাংশন সরবরাহ করে, যা Java ডেভেলপারদের ফাইল এবং ডিরেক্টরি অপারেশনগুলো দ্রুত এবং কার্যকরভাবে সম্পাদন করতে সাহায্য করে।
এই লাইব্রেরির মূল উদ্দেশ্য হল Java I/O API এর কাজগুলোকে আরও সোজা, দ্রুত এবং সহজ করা, যাতে ডেভেলপারদের বারবার একই ধরনের I/O অপারেশনগুলি না করতে হয়। এতে ফাইল কপি, ফাইল ম্যানিপুলেশন, স্ট্রিম রিডিং, এবং রাইটিং, ফাইল ফিল্টারিং ইত্যাদি অনেক ধরনের কাজ সহজ হয়ে যায়।
Apache Commons IO লাইব্রেরির কয়েকটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা Java I/O অপারেশনগুলোকে আরও শক্তিশালী এবং কার্যকরী করে তোলে:
.txt
ফাইলের জন্য ফিল্টারিং)Apache Commons IO লাইব্রেরি বিভিন্ন কাজের জন্য নানা ক্লাস সরবরাহ করে, যার মধ্যে FileUtils, IOUtils, FilenameUtils, DirectoryWalker, FileFilter প্রভৃতি উল্লেখযোগ্য। নিচে কিছু সাধারণ ক্লাস এবং তাদের কার্যাবলী আলোচনা করা হল।
FileUtils
হল এমন একটি ক্লাস যা ফাইল সম্পর্কিত বিভিন্ন অপারেশন যেমন ফাইল কপি, মুভ, ডিলিট ইত্যাদি দ্রুত এবং সহজভাবে করার জন্য ব্যবহৃত হয়।
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
public class FileUtilsExample {
public static void main(String[] args) {
File sourceFile = new File("source.txt");
File destinationFile = new File("destination.txt");
try {
// Copy file using FileUtils
FileUtils.copyFile(sourceFile, destinationFile);
System.out.println("File copied successfully!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
IOUtils
ক্লাসটি Java I/O স্ট্রিম অপারেশনগুলিকে সহজ করে তোলে। এটি স্ট্রিম রিডিং, রাইটিং, কপি ইত্যাদি কাজ দ্রুত এবং কার্যকরভাবে সম্পাদন করতে সহায়তা করে।
import org.apache.commons.io.IOUtils;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class IOUtilsExample {
public static void main(String[] args) {
try (FileInputStream fis = new FileInputStream("source.txt");
FileOutputStream fos = new FileOutputStream("destination.txt")) {
// Copy content from source file to destination using IOUtils
IOUtils.copy(fis, fos);
System.out.println("Content copied successfully!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
FilenameUtils
ক্লাসটি ফাইলের নামের সাথে বিভিন্ন কাজ যেমন এক্সটেনশন বের করা, পাথ তৈরি করা ইত্যাদি কাজ করতে ব্যবহৃত হয়।
import org.apache.commons.io.FilenameUtils;
public class FilenameUtilsExample {
public static void main(String[] args) {
String fileName = "document.txt";
// Get the file extension
String extension = FilenameUtils.getExtension(fileName);
System.out.println("File extension: " + extension); // Output: txt
}
}
DirectoryWalker
ক্লাসটি ডিরেক্টরি এবং তার সাব-ডিরেক্টরি গুলির মধ্যে ফাইল খুঁজতে ব্যবহৃত হয়।
import org.apache.commons.io.DirectoryWalker;
import java.io.File;
import java.util.List;
public class DirectoryWalkerExample {
public static void main(String[] args) {
File dir = new File("/path/to/directory");
DirectoryWalker walker = new DirectoryWalker() {
@Override
protected void handleFile(File file, int depth, List results) {
System.out.println("File: " + file.getName());
}
};
try {
// Walk through the directory
walker.walk(dir, null);
} catch (Exception e) {
e.printStackTrace();
}
}
}
DirectoryWalker
এবং FileFilter
এর মাধ্যমে ডিরেক্টরি স্ক্যান এবং ফাইল ফিল্টারিং অত্যন্ত সহজ হয়।Apache Commons IO একটি শক্তিশালী এবং অত্যন্ত কার্যকরী লাইব্রেরি যা Java I/O অপারেশনগুলিকে দ্রুত, কার্যকর এবং সহজ করে তোলে। এটি FileUtils, IOUtils, FilenameUtils, DirectoryWalker এবং FileFilter এর মতো ক্লাসের মাধ্যমে ফাইল ম্যানিপুলেশন, স্ট্রিম রিডিং/রাইটিং এবং ডিরেক্টরি অপারেশনগুলোকে আরও দক্ষ এবং সাশ্রয়ী করে তোলে। Apache Commons IO ব্যবহারের মাধ্যমে Java ডেভেলপাররা সহজে এবং দ্রুত I/O সম্পর্কিত কাজগুলো সম্পাদন করতে সক্ষম হন।
Apache Commons IO হল Apache Commons প্রকল্পের একটি গুরুত্বপূর্ণ লাইব্রেরি, যা Java ডেভেলপারদের জন্য I/O (Input/Output) সম্পর্কিত কার্যক্রম সহজ এবং কার্যকরী করে তোলে। এটি বিশেষভাবে ফাইল I/O, স্ট্রিম I/O, এবং ডিরেক্টরি I/O সম্পর্কিত কাজকে আরও দক্ষ এবং ব্যবহারকারী বান্ধব করে তোলে। Apache Commons IO-এর মাধ্যমে ডেভেলপাররা ফাইল ও স্ট্রিম সংক্রান্ত কাজগুলি দ্রুত এবং নিরাপদভাবে সম্পাদন করতে পারেন, যেমন ফাইল কপি, ফাইল মুভ, ফাইল রিড/রাইট, এবং স্ট্রিম কপি/ম্যানিপুলেশন।
FileUtils ক্লাসটি Apache Commons IO লাইব্রেরির সবচেয়ে ব্যবহৃত ক্লাসগুলোর একটি, যা ফাইল এবং ডিরেক্টরি সম্পর্কিত কার্যক্রম সহজ করার জন্য শক্তিশালী মেথড সরবরাহ করে। এর মাধ্যমে আপনি সহজেই ফাইল কপি, মুভ, ডিলিট, রিড, রাইট ইত্যাদি করতে পারেন।
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
public class FileUtilsExample {
public static void main(String[] args) {
try {
File sourceFile = new File("source.txt");
File destFile = new File("destination.txt");
// ফাইল কপি করা
FileUtils.copyFile(sourceFile, destFile);
System.out.println("ফাইল কপি সফল!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
এখানে:
আউটপুট:
ফাইল কপি সফল!
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
public class FileDeleteExample {
public static void main(String[] args) {
try {
File file = new File("fileToDelete.txt");
// ফাইল ডিলিট করা
FileUtils.forceDelete(file);
System.out.println("ফাইল ডিলিট সফল!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
এখানে:
আউটপুট:
ফাইল ডিলিট সফল!
IOUtils হল Apache Commons IO লাইব্রেরির একটি গুরুত্বপূর্ণ ক্লাস, যা input/output streams পরিচালনার জন্য ব্যবহার করা হয়। IOUtils স্ট্রিমের মধ্যে ডেটা কপি, স্ট্রিম ক্লোজিং, এবং স্ট্রিম থেকে ডেটা রিড/রাইট করার কাজকে সহজ করে তোলে।
import org.apache.commons.io.IOUtils;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class IOUtilsExample {
public static void main(String[] args) {
try (FileInputStream input = new FileInputStream("source.txt");
FileOutputStream output = new FileOutputStream("destination.txt")) {
// স্ট্রিম কপি করা
IOUtils.copy(input, output);
System.out.println("স্ট্রিম কপি সফল!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
এখানে:
আউটপুট:
স্ট্রিম কপি সফল!
import org.apache.commons.io.IOUtils;
import java.io.FileInputStream;
import java.io.IOException;
public class IOUtilsReadExample {
public static void main(String[] args) {
try (FileInputStream input = new FileInputStream("source.txt")) {
// স্ট্রিম থেকে ডেটা পড়া
String data = IOUtils.toString(input, "UTF-8");
System.out.println("ডেটা পড়া হয়েছে: " + data);
} catch (IOException e) {
e.printStackTrace();
}
}
}
এখানে:
আউটপুট:
ডেটা পড়া হয়েছে: (source.txt ফাইলের কন্টেন্ট)
FilenameUtils হল Apache Commons IO লাইব্রেরির একটি ইউটিলিটি ক্লাস যা ফাইলের নাম এবং এক্সটেনশন সম্পর্কিত বিভিন্ন কার্যাবলী সম্পাদন করতে সহায়তা করে, যেমন ফাইলের এক্সটেনশন বের করা, ফাইলের পাথ আলাদা করা ইত্যাদি।
import org.apache.commons.io.FilenameUtils;
public class FilenameUtilsExample {
public static void main(String[] args) {
String filePath = "document/report.pdf";
// ফাইল এক্সটেনশন বের করা
String extension = FilenameUtils.getExtension(filePath);
System.out.println("ফাইল এক্সটেনশন: " + extension); // Output: pdf
}
}
এখানে:
আউটপুট:
ফাইল এক্সটেনশন: pdf
import org.apache.commons.io.FilenameUtils;
public class FilenameUtilsExample {
public static void main(String[] args) {
String filePath = "document/report.pdf";
// ফাইল পাথ আলাদা করা
String baseName = FilenameUtils.getBaseName(filePath);
String path = FilenameUtils.getPath(filePath);
System.out.println("ফাইলের নাম: " + baseName); // Output: report
System.out.println("ফাইলের পাথ: " + path); // Output: document/
}
}
এখানে:
আউটপুট:
ফাইলের নাম: report
ফাইলের পাথ: document/
Commons IO লাইব্রেরি DirectoryWalker ক্লাস প্রদান করে, যা ডিরেক্টরি এবং সাবডিরেক্টরির মধ্যে রিকোর্সিভভাবে সার্চ বা ট্র্যাভার্স করতে ব্যবহৃত হয়। এটি বিশেষভাবে ফাইল এবং ডিরেক্টরি ফিল্টারিং বা ট্র্যাভার্সিং এর জন্য ব্যবহার করা হয়।
import org.apache.commons.io.DirectoryWalker;
import java.io.File;
import java.io.IOException;
import java.util.List;
public class DirectoryWalkerExample extends DirectoryWalker {
public static void main(String[] args) throws IOException {
File directory = new File("path/to/directory");
// ডিরেক্টরি ট্র্যাভার্স করার জন্য DirectoryWalker ব্যবহার করা
DirectoryWalker walker = new DirectoryWalker() {
@Override
protected boolean handleFile(File file, int depth, List<File> results) {
// ফাইল হ্যান্ডলিং
System.out.println("ফাইল পাওয়া গেছে: " + file.getName());
return true;
}
};
walker.walk(directory, null);
}
}
এখানে:
Apache Commons IO লাইব্রেরি ফাইল I/O, স্ট্রিম I/O, এবং ডিরেক্টরি I/O সম্পর্কিত কার্যাবলীর জন্য শক্তিশালী ইউটিলিটি সরবরাহ করে। এর মাধ্যমে আপনি সহজে ফাইল কপি, ফাইল ডিলিট, স্ট্রিম কপি, স্ট্রিম রিড, ফাইল এক্সটেনশন বের করা, এবং ডিরেক্টরি ট্র্যাভার্সিং ইত্যাদি কাজ করতে পারবেন। লাইব্রেরিটির FileUtils, IOUtils, FilenameUtils, এবং DirectoryWalker এর মতো ক্লাসগুলি Java ডেভেলপারদের জন্য কার্যকরী ও ব্যবহারকারী বান্ধব টুল সরবরাহ করে যা তাদের কাজের গতি বৃদ্ধি করে এবং কোডের জটিলতা কমায়।
Apache Commons IO হলো একটি জনপ্রিয় লাইব্রেরি যা Java এ Input/Output (IO) কার্যক্রমের জন্য প্রয়োজনীয় বিভিন্ন ইউটিলিটি এবং ফিচার সরবরাহ করে। এটি ফাইল এবং ডিরেক্টরি ম্যানিপুলেশন, স্ট্রিম হ্যান্ডলিং, এবং অন্যান্য IO সম্পর্কিত কাজগুলো আরও সহজ এবং কার্যকরী করে তোলে। Apache Commons IO লাইব্রেরি ব্যবহার করলে Java IO সম্পর্কিত অনেক সাধারণ কার্যক্রম যেমন ফাইল কপি, ডিরেক্টরি ম্যানিপুলেশন, স্ট্রিম রিড এবং রাইট করার কাজ দ্রুত এবং নিরাপদে করা যায়।
এই লেখায়, আমরা Apache Commons IO এর বৈশিষ্ট্য এবং এর প্রয়োজনীয়তা নিয়ে আলোচনা করব।
FileUtils:
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
public class FileUtilsExample {
public static void main(String[] args) {
try {
// Copy a file
File sourceFile = new File("source.txt");
File destinationFile = new File("destination.txt");
FileUtils.copyFile(sourceFile, destinationFile);
// Delete a file
File fileToDelete = new File("fileToDelete.txt");
FileUtils.forceDelete(fileToDelete);
} catch (IOException e) {
e.printStackTrace();
}
}
}
এখানে:
FileUtils.copyFile()
মেথডটি একটি ফাইল কপি করার জন্য ব্যবহৃত হয়েছে।FileUtils.forceDelete()
মেথডটি একটি ফাইল ডিলিট করার জন্য ব্যবহৃত হয়েছে।IOUtils:
import org.apache.commons.io.IOUtils;
import java.io.*;
public class IOUtilsExample {
public static void main(String[] args) {
try (InputStream inputStream = new FileInputStream("input.txt");
OutputStream outputStream = new FileOutputStream("output.txt")) {
// Copy data from input stream to output stream
IOUtils.copy(inputStream, outputStream);
// Read file content into a String
String content = IOUtils.toString(inputStream, "UTF-8");
System.out.println(content);
} catch (IOException e) {
e.printStackTrace();
}
}
}
এখানে:
IOUtils.copy()
মেথডটি ইনপুট স্ট্রিম থেকে আউটপুট স্ট্রিমে ডাটা কপি করার জন্য ব্যবহৃত হয়েছে।IOUtils.toString()
মেথডটি ইনপুট স্ট্রিম থেকে স্ট্রিং আকারে ডাটা পড়তে ব্যবহৃত হয়েছে।FilenameUtils:
import org.apache.commons.io.FilenameUtils;
public class FilenameUtilsExample {
public static void main(String[] args) {
String filePath = "/path/to/file/example.txt";
// Get file extension
String extension = FilenameUtils.getExtension(filePath);
System.out.println("File extension: " + extension); // Output: txt
// Get base name of the file
String baseName = FilenameUtils.getBaseName(filePath);
System.out.println("Base name: " + baseName); // Output: example
}
}
এখানে:
FilenameUtils.getExtension()
মেথডটি ফাইলের এক্সটেনশন বের করে।FilenameUtils.getBaseName()
মেথডটি ফাইলের বেস নাম বের করে।FileFilter:
import org.apache.commons.io.filefilter.WildcardFileFilter;
import java.io.File;
import java.io.FileFilter;
public class FileFilterExample {
public static void main(String[] args) {
File directory = new File("/path/to/directory");
// Create a file filter to find all .txt files
FileFilter filter = new WildcardFileFilter("*.txt");
// List all .txt files in the directory
File[] txtFiles = directory.listFiles(filter);
for (File file : txtFiles) {
System.out.println(file.getName());
}
}
}
এখানে:
WildcardFileFilter
ব্যবহার করে আমরা .txt
এক্সটেনশনের সব ফাইল ফিল্টার করেছি এবং listFiles()
মেথডের মাধ্যমে ফিল্টার করা ফাইলগুলির তালিকা পেয়েছি।Apache Commons IO লাইব্রেরি Java-তে ফাইল এবং স্ট্রিম সম্পর্কিত কাজগুলোর জন্য অতিরিক্ত টুলস এবং ইউটিলিটি সরবরাহ করে, যা সাধারণ Java IO API এর তুলনায় আরও সহজ এবং কার্যকরী। এর মাধ্যমে ফাইল পরিচালনা, স্ট্রিম ম্যানিপুলেশন এবং পাথ ম্যানিপুলেশন করা সহজ হয়। এখানে কিছু কারণ রয়েছে যা Apache Commons IO এর প্রয়োজনীয়তা প্রতিষ্ঠিত করে:
Apache Commons IO লাইব্রেরি Java-তে ফাইল এবং স্ট্রিম সম্পর্কিত কাজের জন্য প্রয়োজনীয় কার্যকরী টুলস সরবরাহ করে। এর মাধ্যমে আপনি ফাইল কপি, মুভ, ডিলিট, রিড এবং রাইট অপারেশনগুলি সহজে এবং দ্রুত করতে পারেন। FileUtils, IOUtils, FilenameUtils, এবং FileFilter এর মতো ক্লাসগুলি Java-তে ফাইল এবং স্ট্রিম অপারেশনকে সহজ এবং কার্যকরী করে তোলে। এটি Java-তে ফাইল পরিচালনার কাজ দ্রুত এবং নিরাপদ করে তোলে, যা প্রোগ্রামিংয়ের সময় অত্যন্ত প্রয়োজনীয়।
Apache Commons IO হল একটি জনপ্রিয় লাইব্রেরি যা ফাইল এবং স্ট্রিম ম্যানিপুলেশন, ডিরেক্টরি অপারেশন, ফাইল ফিল্টারিং, এবং অন্যান্য ইনপুট/আউটপুট সম্পর্কিত কার্যকলাপের জন্য কার্যকরী ক্লাস এবং মেথড সরবরাহ করে। আপনি Maven বা Gradle এর মাধ্যমে খুব সহজেই Apache Commons IO লাইব্রেরিটি আপনার প্রজেক্টে অন্তর্ভুক্ত (include) করতে পারেন। নিচে Maven এবং Gradle ব্যবহার করে Apache Commons IO অন্তর্ভুক্ত করার পদ্ধতি আলোচনা করা হয়েছে।
Maven ব্যবহার করে Apache Commons IO অন্তর্ভুক্ত করতে হলে, আপনাকে আপনার প্রজেক্টের pom.xml
ফাইলে dependency ট্যাগে লাইব্রেরিটির গ্রুপ আইডি (groupId), আর্টিফ্যাক্ট আইডি (artifactId), এবং সংস্করণ (version) উল্লেখ করতে হবে।
<dependencies>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-io</artifactId>
<version>2.11.0</version> <!-- Latest version at the time of writing -->
</dependency>
</dependencies>
groupId
: এটি Apache Commons এর গ্রুপ আইডি।artifactId
: এটি Apache Commons IO লাইব্রেরির আর্টিফ্যাক্ট আইডি।version
: এখানে আপনি লাইব্রেরির সংস্করণ উল্লেখ করবেন। আপনি সর্বশেষ সংস্করণ ব্যবহার করতে পারেন, যা Maven Central Repository থেকে পাওয়া যাবে।pom.xml
ফাইলটি সঠিকভাবে কনফিগার করার পর, Maven স্বয়ংক্রিয়ভাবে আপনার প্রজেক্টে Apache Commons IO অন্তর্ভুক্ত করবে।mvn clean install
বা mvn compile
রান করলেই লাইব্রেরি ডাউনলোড হয়ে আপনার প্রজেক্টে যুক্ত হয়ে যাবে।Gradle ব্যবহার করে Apache Commons IO অন্তর্ভুক্ত করতে হলে, আপনাকে আপনার প্রজেক্টের build.gradle
ফাইলে dependency ব্লকে লাইব্রেরির গ্রুপ আইডি, আর্টিফ্যাক্ট আইডি এবং সংস্করণ উল্লেখ করতে হবে।
dependencies {
implementation 'org.apache.commons:commons-io:2.11.0' // Latest version
}
implementation
: Gradle-এ এটি মূলভাবে প্রজেক্টের জন্য প্রয়োজনীয় লাইব্রেরি বা ডিপেনডেন্সি যোগ করার জন্য ব্যবহৃত হয়।'org.apache.commons:commons-io:2.11.0'
: এখানে লাইব্রেরির গ্রুপ আইডি, আর্টিফ্যাক্ট আইডি এবং সংস্করণ উল্লেখ করা হয়েছে।build.gradle
ফাইলটি সঠিকভাবে কনফিগার করার পর, Gradle স্বয়ংক্রিয়ভাবে Apache Commons IO আপনার প্রজেক্টে যোগ করে নেবে।gradle build
বা gradle assemble
রান করলে লাইব্রেরি ডাউনলোড হয়ে যাবে এবং আপনার প্রজেক্টে অন্তর্ভুক্ত হবে।আপনি যদি সর্বশেষ সংস্করণ ব্যবহার করতে চান, তবে Maven Central বা Gradle Repository তে গিয়ে লাইব্রেরির সর্বশেষ সংস্করণ চেক করতে পারেন। সাধারণত, প্রতিটি লাইব্রেরির নতুন সংস্করণ নিয়মিত প্রকাশ করা হয়।
Maven এবং Gradle হল দুটি জনপ্রিয় বিল্ড টুল যা আপনাকে সহজেই Apache Commons IO বা অন্যান্য লাইব্রেরি আপনার প্রজেক্টে অন্তর্ভুক্ত করতে সহায়তা করে। আপনি যদি Maven ব্যবহার করেন, তবে pom.xml
ফাইলে উপযুক্ত dependency যুক্ত করে লাইব্রেরি ইনস্টল করতে পারেন, আর যদি Gradle ব্যবহার করেন, তবে build.gradle
ফাইলে লাইব্রেরি যুক্ত করে সেটি আপনার প্রজেক্টে অন্তর্ভুক্ত করতে পারবেন।
common.read_more