File I/O (Input/Output) হল কম্পিউটার প্রোগ্রামিংয়ের একটি গুরুত্বপূর্ণ অংশ, যা ফাইলের সাথে ডেটা পড়া (Input) এবং লেখা (Output) সম্পর্কিত কার্যক্রম পরিচালনা করে। রুবি ভাষা ফাইল ম্যানিপুলেশনের জন্য বিভিন্ন ধরনের মেথড এবং ফিচার সরবরাহ করে, যার মাধ্যমে আপনি ফাইল তৈরি, পড়া, লেখা এবং মুছতে পারেন।
File I/O এর মৌলিক ধারণা
রুবিতে ফাইল I/O এর জন্য সাধারণত File ক্লাস ব্যবহার করা হয়। এই ক্লাসটি ফাইলের সাথে সম্পর্কিত বিভিন্ন কার্যক্রম করতে সহায়তা করে, যেমন:
- ফাইল খুলা (Open)
- ফাইলের মধ্যে লেখা (Write)
- ফাইল থেকে পড়া (Read)
- ফাইল বন্ধ করা (Close)
File I/O এর মৌলিক মেথডস
1. ফাইল ওপেন করা (Opening a File)
ফাইল খুলতে রুবি File.open মেথড ব্যবহার করে। আপনি যখন ফাইল খুলবেন, তখন এর একটি মোড উল্লেখ করতে হবে, যেমন পড়ার জন্য r (read), লেখার জন্য w (write), অথবা অ্যাপেন্ড করার জন্য a (append) মোড ব্যবহার করা হয়।
সিনট্যাক্স:
File.open('filename.txt', 'mode')- 'r': ফাইলটি পড়ার জন্য খুলবে (ফাইলটি যদি না থাকে, তাহলে একটি ত্রুটি দেখাবে)।
- 'w': ফাইলটি লেখার জন্য খুলবে (ফাইলটি না থাকলে তৈরি করবে এবং পুরানো কন্টেন্ট মুছে ফেলবে)।
- 'a': ফাইলটি অ্যাপেন্ড করার জন্য খুলবে (যদি ফাইল না থাকে তবে এটি তৈরি করবে)।
2. ফাইল থেকে ডেটা পড়া (Reading from a File)
ফাইল থেকে ডেটা পড়তে .read, .gets, অথবা .each_line মেথড ব্যবহার করা হয়।
.read: পুরো ফাইলের কন্টেন্ট একবারে পড়ে নেয়।.gets: এক লাইনে পড়া হয়।.each_line: ফাইলের প্রতিটি লাইনের জন্য একটি ব্লক চালায়।
উদাহরণ:
# ফাইল খুলে পড়া
file = File.open('example.txt', 'r')
content = file.read # পুরো ফাইলের কন্টেন্ট পড়া
puts content
file.close # ফাইল বন্ধ করাএখানে, read মেথড দিয়ে পুরো ফাইলের কন্টেন্ট পড়া হয়েছে এবং শেষে close মেথড দিয়ে ফাইলটি বন্ধ করা হয়েছে।
3. ফাইলে লেখা (Writing to a File)
ফাইলে লেখা লেখার জন্য .write অথবা .puts মেথড ব্যবহার করা হয়। write একবারে পুরো কন্টেন্ট লেখে, আর puts একাধিক লাইন লেখার জন্য ব্যবহৃত হয়।
উদাহরণ:
# ফাইলে লেখা
file = File.open('example.txt', 'w')
file.puts "Hello, Ruby!" # একটি লাইন লেখা
file.write("Welcome to File I/O.") # আরেকটি লাইন লেখা
file.close # ফাইল বন্ধ করাএখানে, "Hello, Ruby!" এবং "Welcome to File I/O." দুটি লাইন puts এবং write মেথডের মাধ্যমে ফাইলে লেখা হয়েছে।
4. ফাইলের মধ্যে অ্যাপেন্ড করা (Appending to a File)
ফাইলের শেষের দিকে নতুন ডেটা অ্যাপেন্ড করতে a মোড ব্যবহার করা হয়।
উদাহরণ:
# ফাইলের শেষে নতুন লেখা অ্যাপেন্ড করা
file = File.open('example.txt', 'a')
file.puts "Appended content."
file.close # ফাইল বন্ধ করাএখানে, "Appended content." ফাইলের শেষের দিকে লেখা হয়েছে।
5. ফাইল বন্ধ করা (Closing a File)
ফাইল ব্যবহারের পরে .close মেথড ব্যবহার করে ফাইলটি বন্ধ করা হয়। ফাইল বন্ধ না করলে, পরে আরও কিছু লিখতে বা পড়তে সমস্যা হতে পারে।
file = File.open('example.txt', 'r')
# ফাইলের সাথে কাজ করার পর, ফাইল বন্ধ করা
file.closeFile I/O এর সিকোয়েন্স
ফাইলের সাথে কাজ করার প্রক্রিয়া সাধারণত নিম্নলিখিত সিকোয়েন্স অনুসরণ করে:
- ফাইল খুলুন (
File.openবাFile.new). - ফাইল থেকে তথ্য পড়ুন অথবা ফাইলে তথ্য লেখুন (
.read,.puts,.writeইত্যাদি). - ফাইল বন্ধ করুন (
file.close).
File I/O এর নিরাপদ ব্যবহার (Safe File Handling)
রুবিতে File.open এর ব্লক ব্যবহার করে ফাইল ওপেন করা হয়, যা নিরাপদ এবং মেমরি ম্যানেজমেন্টে সহায়ক। ব্লকের শেষে ফাইলটি স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যায়।
উদাহরণ:
# ব্লক ব্যবহার করে ফাইলের সাথে কাজ করা
File.open('example.txt', 'r') do |file|
content = file.read
puts content
end
# ব্লক শেষে ফাইল স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যাবেএভাবে, ফাইল ব্যবহারের পর ফাইলটি স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যায়, যা সিস্টেম রিসোর্স মুক্ত রাখতে সহায়ক।
File I/O এর কিছু গুরুত্বপূর্ণ মেথড
.read: পুরো ফাইল পড়তে ব্যবহার করা হয়।.gets: একটি লাইন পড়তে ব্যবহার করা হয়।.each_line: ফাইলের প্রতিটি লাইন পড়তে ব্যবহার করা হয়।.write: ফাইলে লেখা লেখার জন্য ব্যবহৃত হয়।.puts: ফাইলে একটি নতুন লাইন সহ লেখা হয়।.close: ফাইল বন্ধ করতে ব্যবহৃত হয়।
ফাইল সম্পর্কিত ত্রুটি (Error Handling)
ফাইল I/O কাজ করার সময় কিছু ত্রুটি (error) ঘটতে পারে, যেমন:
- ফাইল না থাকা
- পড়তে বা লেখতে সমস্যা
- ফাইল এক্সেস করার অনুমতি না থাকা
এই ধরনের ত্রুটির জন্য begin...rescue ব্লক ব্যবহার করা হয়।
উদাহরণ:
begin
file = File.open('non_existent_file.txt', 'r')
rescue => e
puts "Error: #{e.message}"
endএখানে, যদি "non_existent_file.txt" ফাইলটি না থাকে, তাহলে এর পরিবর্তে rescue ব্লকটি কার্যকর হবে এবং একটি ত্রুটি মেসেজ দেখাবে।
সারসংক্ষেপ
- File I/O রুবিতে ফাইলের সাথে কাজ করার জন্য ব্যবহৃত হয়, যেমন পড়া, লেখা, অ্যাপেন্ড করা, এবং ফাইল বন্ধ করা।
- রুবি স্ট্রিং
File.openমেথড ব্যবহার করে ফাইল ওপেন,read,write,putsমেথড ব্যবহার করে ডেটা পড়া ও লেখা এবংcloseমেথড দিয়ে ফাইল বন্ধ করা হয়। - নিরাপদ ফাইল ব্যবহারের জন্য
File.openব্লক ব্যবহার করা হয়, যা স্বয়ংক্রিয়ভাবে ফাইল বন্ধ করে। - ত্রুটি হ্যান্ডলিংয়ের জন্য
begin...rescueব্লক ব্যবহার করা হয়।
Read more