কম্পিউটার টিউটোরিয়াল

জাভা File ক্লাস ব্যবহার করার পদ্ধতি

জাভাতে ফাইলসহ কাজ করার অনেক পরিস্থিতি হতে পারে। উদাহরণস্বরূপ, আপনি একটি প্রোগ্রামের আউটপুট সংরক্ষণ করার জন্য একটি ফাইল তৈরি করতে চাইতে পারেন, অথবা আপনি একটি ফাইল থেকে ডেটা পড়ে সেটিকে প্রোগ্রাম দ্বারা প্রসেস করতে চাইতে পারেন।

সেই সময় java.io লাইব্রেরি কাজে আসে। java.io লাইব্রেরি জাভাতে ফাইলসহ কাজ করার জন্য অনেক মেথড অফার করে।

এই টিউটোরিয়ালে জাভা File, FileReader, এবং FileWriter ক্লাসগুলো এবং তাদের কোর মেথডগুলো কীভাবে ব্যবহার করতে হয় তা আলোচনা করা হয়েছে। এই টিউটোরিয়ালে এই মেথডগুলো ব্যবহারের উদাহরণও দেওয়া আছে।

জাভা ফাইল

ফাইল হল কম্পিউটারের এমন আইটেম যা নির্দিষ্ট তথ্য সংরক্ষণ করে। উদাহরণস্বরূপ, একটি ফাইল একটি ম্যাথ ক্লাসের ছাত্রদের নামের লিস্ট বা একটি কফি কেক বেক করতে ব্যবহৃত উপাদানগুলো সংরক্ষণ করতে পারে। ডিরেক্টরিগুলো হল ফোল্ডার যা ফাইল এবং অন্যান্য ডিরেক্টরির কালেকশন সংরক্ষণ করে।

java.io লাইব্রেরিতে জাভাতে ফাইল এবং ডিরেক্টরিসহ কাজ করার জন্য অনেক প্যাকেজ থাকে। এই টিউটোরিয়ালে আমরা জাভা File, FileReader, এবং FileWriter প্যাকেজগুলোতে ফোকাস করব।

যেহেতু এই প্যাকেজগুলো দ্বারা অফার করা মেথডগুলো এক্সটার্নাল প্যাকেজের অংশ, তাই আমাদের প্রথমে এই প্যাকেজগুলো ইম্পোর্ট করতে হবে তারপর আমরা আমাদের কোডে সেগুলো ব্যবহার করতে পারব।

File, FileReader, এবং FileWriter ক্লাসগুলো আমাদের প্রোগ্রামে ইম্পোর্ট করার কোড নিচে দেওয়া হলো:

import java.io.File;

import java.io.FileReader;

import java.io.FileWriter;

এখন যেহেতু আমরা জানি জাভা ফাইল ক্লাসগুলো কীভাবে ইম্পোর্ট করতে হয়, আমরা এগিয়ে যেতে পারি।

জাভা ফাইল তৈরি করা

জাভা File ক্লাস জাভাতে একটি খালি ফাইল তৈরি করতে ব্যবহৃত হয়।

তবে, ফাইল তৈরি করার আগে, আমাদের একটি File অবজেক্ট তৈরি করতে হবে। ফাইল অবজেক্ট হল আমাদের কোডে একটি নির্দিষ্ট ফাইল বা ফোল্ডারর রিপ্রেজেন্টেশন।そう言うと, ফাইল অবজেক্ট নিজে থেকে ফাইল তৈরি করে না। আমাদের প্রথমে একটি ফাইল অবজেক্ট তৈরি করতে হবে, তারপর আমরা সেটি ব্যবহার করে ফাইল তৈরি করতে পারি।

জাভাতে ফাইল অবজেক্ট তৈরির সিনট্যাক্স নিচে দেওয়া হলো:

File fileName = new File(String filePath);

এই উদাহরণে, আমরা fileName নামে একটি ফাইল সিস্টেম অবজেক্ট তৈরি করেছি। এই ফাইল অবজেক্টটি আমাদের নির্দিষ্ট করা ফাইল পাথে সংরক্ষিত ফাইল বা ফোল্ডারর সাথে সম্পর্কিত।

জাভাতে ফাইল তৈরি করতে, আমরা createNewFile() মেথড ব্যবহার করতে পারি। createNewFile() আপনি যে ফাইল পাথ নির্দিষ্ট করবেন সেখানে একটি নতুন ফাইল তৈরি করে। যদি নতুন ফাইল তৈরি হয় তবে মেথড true রিটার্ন করে এবং যদি আপনি যে লোকেশন নির্দিষ্ট করেছেন সেখানে ইতিমধ্যে ফাইল থাকে তবে false রিটার্ন করে।

মনে করুন আমরা ২০১৯ সালে S&P 500-এর ঐতিহাসিক স্টক পারফরম্যান্স বিশ্লেষণ করার একটি ডেটা অ্যানালাইসিস প্রোগ্রাম তৈরি করছি। আমাদের ডেটা বিশ্লেষণ করার আগে, আমরা আমাদের প্রোগ্রাম তৈরি করা ইনসাইটগুলো সংরক্ষণ করার জন্য একটি নতুন ফাইল তৈরি করতে চাই। আমরা আমাদের অ্যানালাইসিসের ফলাফল সংরক্ষণ করার ফাইল তৈরি করতে নিচের কোড ব্যবহার করতে পারি:

import java.io.File; class CreateFile { public static void main(String[] args) { File resultsFile = new File("/home/data_analysis/2019sandp500/result.txt"); boolean fileCreated = resultsFile.createNewFile(); if (fileCreated) { System.out.println("রেজাল্ট ফাইল তৈরি হয়েছে।"); } else { System.out.println("রেজাল্ট ফাইল ইতিমধ্যে বিদ্যমান।"); } } }

যখন আমরা আমাদের কোড রান করি, /home/data_analysis/2019sandp500/result.txt পাথে একটি ফাইল তৈরি হয়। তারপর কনসোলে নিচের রেসপন্স রিটার্ন হয়:

রেজাল্ট ফাইল তৈরি হয়েছে।

তবে, যদি আমরা যে ফাইলটি তৈরি করার চেষ্টা করছি সেটি ইতিমধ্যে বিদ্যমান থাকে, তবে কনসোলে নিচের মেসেজ রিটার্ন হয়:

রেজাল্ট ফাইল ইতিমধ্যে বিদ্যমান।

আমাদের কোড ভাঙে ব্যাখ্যা করি। প্রথমে, আমরা java.io.File মেথড ইম্পোর্ট করি যাতে ফাইল মেথডগুলো আমাদের কোডে ব্যবহার করা যায়। তারপর আমরা CreateFile নামে একটি ক্লাস তৈরি করি যা আমাদের প্রোগ্রামের কোড সংরক্ষণ করে।

আমাদের মেইন প্রোগ্রামের প্রথম লাইনে, আমরা resultsFile নামে একটি ফাইল অবজেক্ট তৈরি করি, যা /home/data_analysis/2019sandp500/result.txt ফাইল পাথে অবস্থিত ফাইলকে রিপ্রেজেন্ট করে। তারপর আমরা নির্দিষ্ট ফাইল পাথে নতুন ফাইল তৈরি করতে createNewFile() মেথড ব্যবহার করি। createNewFile() মেথডের বুলিয়ান ফলাফল fileCreated ভেরিয়েবলে সংরক্ষণ হয়।

পরবর্তী লাইনে, আমরা একটি if স্টেটমেন্ট তৈরি করি। যদি fileCreated true এর সমান হয়, তবে রেজাল্ট ফাইল তৈরি হয়েছে মেসেজ কনসোলে প্রিন্ট হবে; অন্যথায়, রেজাল্ট ফাইল ইতিমধ্যে বিদ্যমান মেসেজ প্রিন্ট হবে। এই কেসে, রেজাল্ট ফাইল বিদ্যমান নেই, তাই আমাদের কোড নতুন ফাইল তৈরি করে এবং রেজাল্ট ফাইল তৈরি হয়েছে। কনসোলে প্রিন্ট করে।

জাভা ফাইল পড়া

জাভা FileReader ক্লাসের read() মেথড জাভা ফাইলের কন্টেন্ট পড়তে ব্যবহৃত হয়।

মনে করুন у আমাদের একটি ফাইল আছে যার নাম /home/data_analysis/2019sandp500/raw_message.txt এবং আমরা আমাদের কোডে এটি অ্যাক্সেস করতে চাই। এই ফাইলটি নিচের টেক্সট ধারণ করে:

JAVA S&P 500 ANALYSIS PROGRAM

আমরা এই ফাইলটি নিচের কোড ব্যবহার করে পড়তে পারি:

import java.io.FileReader; class Main { public static void main(String[] args) { char[] array = new char[100]; try { FileReader fileContents = new FileReader("/home/data_analysis/2019sandp500/raw_message.txt"); fileContents.read(array); System.out.println(array); fileContents.close(); } catch(Exception error) { error.getStackTrace(); } } }

আমাদের কোড রিটার্ন করে:

JAVA S&P 500 ANALYSIS PROGRAM

আমাদের প্রোগ্রামে, আমরা FileReader ক্লাস ব্যবহার করে /home/data_analysis/2019sandp500/raw_message.txt এ সংরক্ষিত ফাইল কন্টেন্টকে রিপ্রেজেন্ট করা একটি ফাইল অবজেক্ট তৈরি করেছি। তারপর, আমরা ফাইল কন্টেন্টকে একটি অ্যারেতে পড়তে read() মেথড ব্যবহার করেছি। অবশেষে, আমরা অ্যারের কন্টেন্ট কনসোলে প্রিন্ট করেছি এবং ফাইল বন্ধ করতে close() ব্যবহার করেছি।

জাভা ফাইলে লিখা

FileWriter প্যাকেজ থেকে write() মেথড জাভাতে ফাইলে লিখতে ব্যবহৃত হয়।

মনে করুন আমরা আজকের তারিখ আমাদের ডেটা অ্যানালাইসিস প্রোগ্রামের ফলাফল সংরক্ষণকারী রেজাল্ট ফাইলের শীর্ষে লিখতে চাই। এই ফাইলটি /home/data_analysis/2019sandp500/results.txt ফাইল পাথে সংরক্ষিত। আমরা এটি নিচের কোড ব্যবহার করে করতে পারি:

import java.io.FileWriter; class Main { public static void main(String args[]) { String date = "Thursday, March 12th"; try { FileWriter writeToFile = new FileWriter("/home/data_analysis/2019sandp500/results.txt"); writeToFile.write(date); writeToFile.close(); System.out.println("তারিখ ফাইলে লেখা হয়েছে।"); } catch (Exception error) { error.getStackTrace(); } }

আমাদের কোড Thursday, March 12th কে /home/data_analysis/2019sandp500/results.txt ফাইলে লিখে এবং কনসোলে নিচের আউটপুট প্রিন্ট করে:

তারিখ ফাইলে লেখা হয়েছে।

আমাদের প্রোগ্রামে লেখা results.txt ফাইলের কন্টেন্ট:

Thursday, March 12th

উপরের উদাহরণে, আমরা জাভাতে একটি ফাইলে একটি সেন্টেন্স লিখতে FileWriter মেথড ব্যবহার করেছি। প্রথমে, আমরা writeToFile() নামে একটি ভেরিয়েবল ঘোষণা করেছি যা /home/data_analysis/2019sandp500/results.txt ফাইল পাথে সংরক্ষিত ফাইলকে রিপ্রেজেন্ট করে। write() মেথড একটি স্ট্রিং ফাইলে লিখতে ব্যবহৃত হয়, তারপর আমরা ফাইল বন্ধ করতে close() method ব্যবহার করি।

জাভায় ফাইল ডিলিট করা

জাভা File প্যাকেজ একটি মেথড অফার করে যা একটি ফাইল বা ডিরেক্টরি ডিলিট করতে ব্যবহৃত হয়—delete(). 

delete() নির্দিষ্ট ফাইল ডিলিট হলে true রিটার্ন করে, এবং ফাইল না থাকলে false রিটার্ন করে। এছাড়া, delete() মেথড শুধু খালি ডিরেক্টরি ডিলিট করতে পারে।

মনে করুন আমরা আমাদের প্রোগ্রামের শুরুতে results.txt ফাইল ডিলিট করতে চাই যাতে পরে আমাদের প্রোগ্রামে নতুন ডেটা লিখতে পারি। আমরা এটি নিচের কোড ব্যবহার করে করতে পারি:

import java.io.File; class Main { public static void main(String[] args) { File results = new File("/home/data_analysis/2019sandp500/results.txt"); boolean deleteFile = results.delete(); if (deleteFile) { System.out.println("results.txt ডিলিট হয়েছে।"); } else { System.out.println("results.txt ডিলিট হয়নি।"); } } }

আমাদের কোড results.txt ফাইলের কন্টেন্ট ডিলিট করে এবং কনসোলে নিচের আউটপুট প্রিন্ট করে:

results.txt ডিলিট হয়েছে।

এই উদাহরণে, আমরা results নামে File অবজেক্ট তৈরি করেছি যা results.txt ফাইল কন্টেন্টকে রিপ্রেজেন্ট করে। তারপর, আমরা ফাইলের কন্টেন্ট ডিলিট করতে delete() মেথড ব্যবহার করেছি।

যদি results.txt ফাইল সফলভাবে ডিলিট হয়—যেমন উপরের উদাহরণে হয়েছে—তবে results.txt ডিলিট হয়েছে মেসেজ কনসোলে প্রিন্ট হয়। অন্যথায়, results.txt ডিলিট হয়নি প্রিন্ট হয়।

উপসংহার

জাভা File প্যাকেজ ফাইল তৈরি এবং ডিলিট করতে ব্যবহৃত হয়, FileReader প্যাকেজ ফাইলের কন্টেন্ট পড়তে ব্যবহৃত হয়, এবং FileWriter প্যাকেজ ফাইলে লিখতে ব্যবহৃত হয়।

এই টিউটোরিয়ালে উদাহরণসহ File, FileReader, এবং FileWriter জাভা প্যাকেজগুলো কীভাবে ব্যবহার করে আপনার কোডে ফাইলসহ কাজ করতে হয় তা আলোচনা করা হয়েছে। এখন আপনি জাভাতে ফাইল প্রফেশনাল প্রোগ্রামারের মতো ব্যবহার করতে পারবেন!

  1. লিনাক্স ক্যাট (cat) কমান্ড ব্যবহারের পূর্ণাঙ্গ গাইড

  2. জাভাতে CSV ফাইল থেকে ডেটা পড়া

  3. জাভাতে প্রপার্টিজ ফাইল থেকে ডেটা পড়া

  4. জাভাতে অন্য প্যাকেজের ক্লাস ব্যবহার করা