রুবি প্রোগ্রামিং ভাষায় File I/O (Input/Output) অত্যন্ত গুরুত্বপূর্ণ। আপনি সহজেই ফাইল থেকে ডেটা পড়তে এবং ফাইলে ডেটা লিখতে পারেন। রুবি স্ট্যান্ডার্ড লাইব্রেরিতে ফাইল পরিচালনার জন্য অনেক মেথড রয়েছে, যা দিয়ে ফাইলের সাথে কাজ করা যায়।
১. File থেকে ডেটা পড়া
রুবিতে ফাইল থেকে ডেটা পড়তে বিভিন্ন পদ্ধতি রয়েছে। সাধারণত, File.read, File.readlines, বা IO মডিউল ব্যবহার করা হয়।
১.১ File.read মেথড
File.read মেথডটি ফাইলের সমস্ত কনটেন্ট একবারে পড়তে ব্যবহৃত হয়।
file_content = File.read("example.txt")
puts file_contentএখানে, "example.txt" ফাইলটির সমস্ত কনটেন্ট পড়া হবে এবং তা file_content ভেরিয়েবলে রাখা হবে। এরপর, তা আউটপুট করা হবে।
১.২ File.readlines মেথড
File.readlines মেথডটি ফাইলের সমস্ত লাইনকে একটি অ্যারেতে পড়তে ব্যবহার হয়। এই মেথডটি ফাইলের প্রতিটি লাইনকে একটি আলাদা উপাদান হিসেবে অ্যারেতে রাখে।
lines = File.readlines("example.txt")
puts linesএখানে, "example.txt" ফাইলটির প্রতিটি লাইন একটি আলাদা উপাদান হিসেবে অ্যারেতে রাখা হবে এবং পরে তা আউটপুট হবে।
১.৩ File.open মেথড
File.open মেথডটি ফাইলটি খুলে, তার পরে ফাইলের কনটেন্ট পড়তে সাহায্য করে। আপনি open মেথডের সাথে ব্লক ব্যবহার করে কাজ করতে পারেন, যা ফাইলের ব্যবহারের পরে স্বয়ংক্রিয়ভাবে ফাইলটি বন্ধ করে দেয়।
File.open("example.txt", "r") do |file|
file_content = file.read
puts file_content
endএখানে, "example.txt" ফাইলটি রিড মোডে (read mode) খোলা হয়েছে, এবং তার কনটেন্ট file.read দিয়ে পড়া হয়েছে।
২. File এ ডেটা লেখা
ফাইলে ডেটা লেখার জন্য File.write, File.puts, এবং File.open মেথড ব্যবহার করা হয়।
২.১ File.write মেথড
File.write মেথডটি ফাইলের মধ্যে নির্দিষ্ট কনটেন্ট লেখার জন্য ব্যবহার করা হয়।
File.write("example.txt", "Hello, world!")এখানে, "example.txt" ফাইলে "Hello, world!" লেখার কাজ করবে। যদি ফাইলটি পূর্বে থেকেই থাকে, তবে এটি পুরনো কনটেন্টকে ওভাররাইট করবে।
২.২ File.puts মেথড
File.puts মেথডটি ফাইলের মধ্যে লাইন আকারে ডেটা লেখার জন্য ব্যবহার হয়।
File.open("example.txt", "w") do |file|
file.puts("Hello, world!")
file.puts("Welcome to Ruby file handling.")
endএখানে, "example.txt" ফাইলে দুটি লাইন লেখা হবে। w মোড ফাইলটি লেখার জন্য খোলার নির্দেশ দেয় এবং এটি ফাইলের পুরনো কনটেন্টকে মুছে ফেলে নতুন কনটেন্ট লেখে।
২.৩ File.open মেথড দিয়ে লেখা
File.open মেথড ব্যবহার করে আপনি লেখার জন্য একটি ব্লকও ব্যবহার করতে পারেন। এটি পুরনো কনটেন্টের সাথে নতুন ডেটা যোগ করতে সহায়ক।
File.open("example.txt", "a") do |file|
file.puts("This is an appended line.")
endএখানে, "example.txt" ফাইলটি অ্যাপেন্ড মোডে (append mode) খোলা হয়েছে, যার ফলে পুরনো কনটেন্টের শেষে নতুন লাইন যোগ করা হয়েছে।
৩. File I/O Error Handling
ফাইলের সাথে কাজ করার সময় আপনি ফাইল না থাকলে অথবা রিড/রাইট পারমিশন না থাকলে error handling করতে পারেন।
begin
file = File.open("example.txt", "r")
content = file.read
puts content
rescue Errno::ENOENT
puts "The file does not exist!"
rescue Errno::EACCES
puts "You do not have permission to read the file!"
ensure
file.close if file
endএখানে, Errno::ENOENT ত্রুটি ফাইল না থাকার ক্ষেত্রে এবং Errno::EACCES ত্রুটি ফাইল রিড/রাইট পারমিশন না থাকার ক্ষেত্রে ধরা পড়বে।
সারসংক্ষেপ
- File.read: ফাইলের সমস্ত কনটেন্ট একবারে পড়তে ব্যবহার করা হয়।
- File.readlines: ফাইলের প্রতিটি লাইনকে একটি অ্যারেতে পড়তে ব্যবহার করা হয়।
- File.open: ফাইলের কনটেন্ট পড়তে বা লিখতে ব্যবহৃত হয় এবং ব্লক ব্যবহার করলে ফাইল বন্ধ হয়ে যায়।
- File.write: ফাইলে একটি নির্দিষ্ট কনটেন্ট লেখার জন্য ব্যবহৃত হয়।
- File.puts: ফাইলে একটি লাইন আকারে ডেটা লেখার জন্য ব্যবহৃত হয়।
- File I/O Error Handling: ফাইলের সাথে কাজ করার সময় ত্রুটির জন্য
begin-rescue-ensureব্লক ব্যবহার করা যায়।
এই পদ্ধতিগুলির মাধ্যমে আপনি রুবিতে ফাইল পরিচালনা করতে পারবেন এবং ফাইলের কনটেন্ট পড়া বা লেখা সহজেই করতে পারবেন।