কেন আমাদের একটি ফাইল "অস্তিত্ব আছে কিনা তা পরীক্ষা করতে হবে?"
ফাইল অপারেশন নিয়ে কাজ করার সময় (পড়ুন/লিখুন/তৈরি/মুছে ফেলুন/আপডেট ইত্যাদি), অনেক নতুনরা ভাবতে পারে যে কেন আমাদের একটি ফাইল বিদ্যমান কিনা তা পরীক্ষা করতে হবে? এর উপযুক্ত প্রতিক্রিয়া হবে, NoSuchFileException এড়ানোর জন্য , এটি সর্বদা একটি ফাইল অ্যাক্সেস করার একটি নিরাপদ উপায়। ফলস্বরূপ, কোনো রানটাইম ব্যতিক্রম এড়াতে আপনাকে এটি অ্যাক্সেস করার আগে একটি ফাইল বিদ্যমান কিনা তা পরীক্ষা করতে হবে।কিভাবে file.exists() পদ্ধতি ব্যবহার করে পরীক্ষা করবেন?
জাভা একটি সাধারণ বুলিয়ান পদ্ধতি প্রদান করে, file.exists() যার প্রদত্ত পাথে প্রাসঙ্গিক ফাইলটি পরীক্ষা করার জন্য কোনো প্যারামিটারের প্রয়োজন হয় না। একটি ফাইলের অস্তিত্ব পরীক্ষা করার সময়, 3টি পরিস্থিতি বিবেচনায় রাখুন।- ফাইল পাওয়া যায়।
- ফাইল পাওয়া যায় না.
- অনুমতি না দেওয়া হলে ফাইলের অবস্থা অজানা (নিরাপত্তার কারণে)।
উদাহরণ
এর বাস্তবায়ন দেখতে একটি সাধারণ কোড উদাহরণ দেখুন।
package com.java.exists;
import java.io.File;
public class ExistsMethodInJava {
public static void main(String[] args) {
String filePath = "C:\\Users\\Lubaina\\Documents\\myNewTestFile.txt";
File file = new File(filePath);
// check if the file exists at the file path
System.out.println("Does File exists at \"" + filePath + "\"?\t" + file.exists());
filePath = "C:\\Users\\Lubaina\\Documents\\myOtherTestFile.txt";
File nextFile = new File(filePath);
// check if the file exists at the file path
System.out.println("Does File exists at \"" + filePath + "\"?\t" + nextFile.exists());
}
}
আউটপুট
ফাইল কি "C:\Users\Lubaina\Documents\myNewTestFile.txt" এ বিদ্যমান? true ফাইল কি "C:\Users\Lubaina\Documents\myOtherTestFile.txt" এ বিদ্যমান? মিথ্যা
অনুগ্রহ করে নোট করুন যে file.exists() পদ্ধতিটি " ডিরেক্টরি " পাথগুলির জন্যও কাজ করে। আপনি যদি এই পদ্ধতির সাথে একটি বৈধ ডিরেক্টরি পাথ পরীক্ষা করেন তবে এটি সত্য বা অন্যথায় মিথ্যা হবে। আরও ভাল বোঝার জন্য, আপনি কোডের নিম্নলিখিত ব্লকটি দেখতে পারেন।
package com.java.exists;
import java.io.File;
public class CheckFileExists {
// check if the "file" resource exists and not "directory"
public static boolean checkFileExists(File file) {
return file.exists() && !file.isDirectory();
}
public static void main(String[] args) {
String directoryPath = "C:\\Users\\Lubaina\\Documents\\javaContent";
File direcotry = new File(directoryPath);
// check if the directory exists at the dir path
if (direcotry.exists()) {
System.out.println("Direcotry at \"" + directoryPath + "\" exists.\n");
} else {
System.out.println("Direcotry at \"" + directoryPath + "\" does not exist.\n");
}
// check if the resource present at the path is a "file" not "directory"
boolean check = checkFileExists(direcotry);
System.out.println("Is the resource \"" + direcotry + "\" a File? " + check);
String filePath = "C:\\Users\\Lubaina\\Documents\\myNewTestFile.txt";
File file = new File(filePath);
check = checkFileExists(file);
System.out.println("Is the resource \"" + file + "\" a File? " + check);
}
}
আউটপুট
"C:\Users\Lubaina\Documents\javaContent"-এ ডিরেক্টরি বিদ্যমান। রিসোর্স "C:\Users\Lubaina\Documents\javaContent" একটি ফাইল? false রিসোর্স "C:\Users\Lubaina\Documents\myNewTestFile.txt" একটি ফাইল? সত্য
আপনি আউটপুট থেকে দেখতে পাচ্ছেন, "javaContent" নামের ডিরেক্টরিটি exists() পদ্ধতি দ্বারা যাচাই করা হয়েছে। সুতরাং আপনি যদি বিশেষভাবে পরীক্ষা করতে চান যে একটি ফাইল একটি ডিরেক্টরি নয়, আপনি জাভাতে ফাইল ক্লাস দ্বারা প্রদত্ত বুলিয়ান পদ্ধতি isDirectory() ব্যবহার করতে পারেন।
উপসংহার
এই পোস্টের শেষ নাগাদ, জাভাতে একটি ফাইল বিদ্যমান আছে কিনা তা কীভাবে পরীক্ষা করতে হয় তার সাথে আপনাকে অবশ্যই পরিচিত হতে হবে। আপনি এই কার্যকারিতা পরীক্ষা এবং বুঝতে আপনার নিজস্ব প্রোগ্রাম লিখতে পারেন. একবার আপনি এটির সাথে স্বাচ্ছন্দ্য বোধ করলে, আপনি একটি ফাইলের উপস্থিতি পরীক্ষা করার অন্যান্য উপায়গুলিও অন্বেষণ করতে পারেন (যেমন, প্রতীকী লিঙ্ক বা nio ক্লাস ব্যবহার করে)। শুভকামনা এবং সুখী কোডিং! :)
আরো পড়া: |
---|
GO TO FULL VERSION